...
diff --git a/run.sh b/run.sh
index 6e2afef..89bc376 100755
--- a/run.sh
+++ b/run.sh
@@ -1,4 +1,4 @@
#!/bin/sh
-java -Xmx100m -server -cp lib/\*:target/classes:target/test-classes $*
+java -Xmx256m -server -cp lib/\*:target/classes:target/test-classes $*
diff --git a/src/test/java/perf/ManualWritePerfUntyped.java b/src/test/java/perf/ManualWritePerfUntyped.java
new file mode 100644
index 0000000..e941453
--- /dev/null
+++ b/src/test/java/perf/ManualWritePerfUntyped.java
@@ -0,0 +1,46 @@
+package perf;
+
+import java.io.File;
+import java.util.*;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.ObjectWriter;
+
+/* Test modified from json-parsers-benchmark, to be able to profile
+ * Jackson implementation.
+ */
+public class ManualWritePerfUntyped
+ extends ObjectWriterBase<Object,Object>
+{
+ @Override
+ protected int targetSizeMegs() { return 15; }
+
+ public static void main(String[] args) throws Exception
+ {
+ if (args.length != 1) {
+ System.err.println("Usage: java [input]");
+ System.exit(1);
+ }
+ ObjectMapper mapper = new ObjectMapper();
+ Map<?,?> stuff = mapper.readValue(new File(args[0]), Map.class);
+ new ManualWritePerfUntyped().test(mapper,
+ "AllTypes/small-1", stuff, Object.class,
+ "AllTypes/small-2", stuff, Object.class);
+ }
+
+ @Override
+ protected long testSer(int REPS, Object value, ObjectWriter writer) throws Exception
+ {
+ final NopOutputStream out = new NopOutputStream();
+ long start = System.nanoTime();
+ byte[] output = null;
+
+ while (--REPS >= 0) {
+ output = writer.writeValueAsBytes(value);
+ }
+ hash = output.length;
+ long nanos = System.nanoTime() - start;
+ out.close();
+ return nanos;
+ }
+}
diff --git a/src/test/java/perf/ObjectWriterBase.java b/src/test/java/perf/ObjectWriterBase.java
index 4162459..a1d2aea 100644
--- a/src/test/java/perf/ObjectWriterBase.java
+++ b/src/test/java/perf/ObjectWriterBase.java
@@ -27,8 +27,8 @@
}
final ObjectWriter writer0 = mapper.writer().with(SerializationFeature.EAGER_SERIALIZER_FETCH);
- final ObjectWriter jsonWriter = writer0.withType(inputClass1);
- final ObjectWriter arrayWriter = writer0.withType(inputClass2);
+ final ObjectWriter writer1 = writer0.withType(inputClass1);
+ final ObjectWriter writer2 = writer0.withType(inputClass2);
int i = 0;
int roundsDone = 0;
@@ -52,12 +52,12 @@
switch (round) {
case 0:
msg = desc1;
- writer = jsonWriter;
+ writer = writer1;
value = inputValue1;
break;
case 1:
msg = desc2;
- writer = arrayWriter;
+ writer = writer2;
value = inputValue2;
break;
default: