int iterate(Random random) {
            ByteArrayOutputStream writerOut = new ByteArrayOutputStream();
            JSONWriter writer = new JSONWriter(writerOut);
            try {
                serialize(generatedDoc(random), writer);
            } catch (IOException e) {
                e.printStackTrace();
                return 0;
            }
            return writerOut.toByteArray().length;
        }
Object identity is used to differentiate between different implementation strategies, toString() is used to print a report.

@return an object with a descriptive toString() for the implementation under test
vespajlib/src/test/java/com/yahoo/text/JsonMicroBenchmarkTestCase.java