package ser; import org.nustaq.serialization.*; import java.io.*; /** * Created by ruedi on 14.04.2015. */ public class Github61 { /** Size of primitive array */ static final int SIZE = 50_000_000; public static void main(String[] args) throws Exception { CountingOutputStream count; long start, elapsed; Object obj = new double[SIZE]; count = new CountingOutputStream(); FSTConfiguration fastconf = FSTConfiguration.createUnsafeBinaryConfiguration(); FSTConfiguration conf = FSTConfiguration.createDefaultConfiguration(); while ( true ) { start = System.nanoTime(); try(ObjectOutputStream oos = new ObjectOutputStream(count)) { oos.writeObject(obj); } elapsed = System.nanoTime() - start; System.out.println("STD " + count.getCount() + " bytes written in " + (elapsed) / 1000000L + "ms"); count.reset(); start = System.nanoTime(); try(FSTObjectOutput fos = conf.getObjectOutput(count)) { fos.writeObject(obj); } elapsed = System.nanoTime() - start; System.out.println("FST " + count.getCount() + " bytes written in " + (elapsed) / 1000000L + "ms"); count.reset(); start = System.nanoTime(); try(FSTObjectOutput fos = fastconf.getObjectOutput(count)) { fos.writeObject(obj); } elapsed = System.nanoTime() - start; System.out.println("FST unsafe " + count.getCount() + " bytes written in " + (elapsed)/1000000L + "ms"); count.reset(); } } public static class CountingOutputStream extends ByteArrayOutputStream { public CountingOutputStream() { super(SIZE*10); } public int getCount() { return count; } } }