All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.perf.TestCopyPerf Maven / Gradle / Ivy

import java.io.*;

import org.codehaus.jackson.*;
import org.codehaus.jackson.map.JsonTypeMapper;
import org.codehaus.jackson.map.JsonNode;

public final class TestCopyPerf
{
    private final static int REPS = 2500;

    final JsonFactory mJsonFactory;

    final JsonNode mTree;

    private TestCopyPerf(File f)
        throws Exception
    {
        mJsonFactory = new JsonFactory();
        FileInputStream fis = new FileInputStream(f);
        JsonTypeMapper mapper = new JsonTypeMapper();
        JsonParser jp = mJsonFactory.createJsonParser(fis);
        mTree = mapper.read(jp);
        jp.close();
    }

    public void test()
        throws Exception
    {
        ByteArrayOutputStream bos = new ByteArrayOutputStream(2000);
        testCopy(1, bos);
        System.out.println("Output length: "+bos.size());
        System.out.println();

        while (true) {
            try {  Thread.sleep(100L); } catch (InterruptedException ie) { }

            long curr = System.currentTimeMillis();
            int result = testCopy(REPS, bos);
            curr = System.currentTimeMillis() - curr;
            System.out.println("Took "+curr+" msecs ("
                               +(result & 0xFF)+").");
        }
    }

    private int testCopy(int reps, ByteArrayOutputStream bos)
        throws IOException
    {
        JsonGenerator jg = null;
        while (--reps >= 0) {
            bos.reset();
            jg = mJsonFactory.createJsonGenerator(bos, JsonEncoding.UTF8);
            mTree.writeTo(jg);
            jg.close();
        }
        return jg.hashCode();
    }

    public static void main(String[] args)
        throws Exception
    {
        if (args.length != 1) {
            System.err.println("Usage: java ... ");
            System.exit(1);
        }
        new TestCopyPerf(new File(args[0])).test();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy