Skip to content

Commit df9706c

Browse files
committed
update
1 parent fd2d468 commit df9706c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+5055
-60
lines changed

Diff for: src/main/java/com/jsoniter/benchmark/skip_multi_levels/DeserDslJson.java

+10-5
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,17 @@
3030
public class DeserDslJson {
3131

3232

33-
private byte[] testJSON = ("{\"field2\":{\"1\":" +
34-
"[\"1\",\"2\",\"3\",\"4\",\"5\"]," +
33+
private byte[] testJSON = ("{\"field2\":{" +
34+
"\"1\":[\"1\",\"2\",\"3\",\"4\",\"5\"]," +
3535
"\"2\":[\"1\",\"2\",\"3\",\"4\",\"5\"]," +
36-
"\"3\":[\"1\",\"2\",\"3\",\"4\",\"5\"]}," +
37-
"\"field1\":[\"1\",\"2\",\"3\",\"4\",\"5\"]," +
38-
"\"field3\":\"xxxx-3\"}").getBytes();
36+
"\"3\":[\"1\",\"2\",\"3\",\"4\",\"5\"]" +
37+
"}," +
38+
"\"field1\":[" +
39+
"\"1\",\"2\",\"3\",\"4\",\"5\"," +
40+
"\"1\",\"2\",\"3\",\"4\",\"5\"," +
41+
"\"1\",\"2\",\"3\",\"4\",\"5\"" +
42+
"]," +
43+
"\"field3\":\"x-3\"}").getBytes();
3944
private CustomJsonReader reader;
4045

4146
@Setup(Level.Trial)

Diff for: src/main/java/com/jsoniter/benchmark/skip_multi_levels/DeserJackson.java

+10-5
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,17 @@ public class DeserJackson {
3636

3737
private ObjectMapper objectMapper;
3838
private TypeReference<TestReadObject> typeReference;
39-
private byte[] testJSON = ("{\"field2\":{\"1\":" +
40-
"[\"1\",\"2\",\"3\",\"4\",\"5\"]," +
39+
private byte[] testJSON = ("{\"field2\":{" +
40+
"\"1\":[\"1\",\"2\",\"3\",\"4\",\"5\"]," +
4141
"\"2\":[\"1\",\"2\",\"3\",\"4\",\"5\"]," +
42-
"\"3\":[\"1\",\"2\",\"3\",\"4\",\"5\"]}," +
43-
"\"field1\":[\"1\",\"2\",\"3\",\"4\",\"5\"]," +
44-
"\"field3\":\"xxxx-3\"}").getBytes();
42+
"\"3\":[\"1\",\"2\",\"3\",\"4\",\"5\"]" +
43+
"}," +
44+
"\"field1\":[" +
45+
"\"1\",\"2\",\"3\",\"4\",\"5\"," +
46+
"\"1\",\"2\",\"3\",\"4\",\"5\"," +
47+
"\"1\",\"2\",\"3\",\"4\",\"5\"" +
48+
"]," +
49+
"\"field3\":\"x-3\"}").getBytes();
4550

4651
@Setup(Level.Trial)
4752
public void benchSetup(BenchmarkParams params) {

Diff for: src/main/java/com/jsoniter/benchmark/skip_multi_levels/DeserJsoniter.java

+21-6
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,17 @@
3535
@State(Scope.Thread)
3636
public class DeserJsoniter {
3737

38-
private byte[] testJSON = ("{\"field2\":{\"1\":" +
39-
"[\"1\",\"2\",\"3\",\"4\",\"5\"]," +
38+
private byte[] testJSON = ("{\"field2\":{" +
39+
"\"1\":[\"1\",\"2\",\"3\",\"4\",\"5\"]," +
4040
"\"2\":[\"1\",\"2\",\"3\",\"4\",\"5\"]," +
41-
"\"3\":[\"1\",\"2\",\"3\",\"4\",\"5\"]}," +
42-
"\"field1\":[\"1\",\"2\",\"3\",\"4\",\"5\"]," +
43-
"\"field3\":\"xxxx-3\"}").getBytes();
41+
"\"3\":[\"1\",\"2\",\"3\",\"4\",\"5\"]" +
42+
"}," +
43+
"\"field1\":[" +
44+
"\"1\",\"2\",\"3\",\"4\",\"5\"," +
45+
"\"1\",\"2\",\"3\",\"4\",\"5\"," +
46+
"\"1\",\"2\",\"3\",\"4\",\"5\"" +
47+
"]," +
48+
"\"field3\":\"x-3\"}").getBytes();
4449
private JsonIterator iter;
4550
private TypeLiteral<TestReadObject> typeLiteral;
4651

@@ -62,12 +67,22 @@ public void deser(Blackhole bh) throws IOException {
6267
}
6368
}
6469

70+
// @Benchmark
71+
// @BenchmarkMode(Mode.AverageTime)
72+
// @OutputTimeUnit(TimeUnit.NANOSECONDS)
73+
// public void deserAny(Blackhole bh) throws IOException {
74+
// for (int i = 0; i < 1000; i++) {
75+
// iter.reset(testJSON);
76+
// bh.consume(iter.readAny().toString("field3"));
77+
// }
78+
// }
79+
6580
@Test
6681
public void test() throws IOException {
6782
benchSetup(null);
6883
System.out.println(new String(testJSON));
6984
iter.reset(testJSON);
70-
assertEquals("xxxx-3", iter.read(typeLiteral).field3);
85+
assertEquals("x-3", iter.read(typeLiteral).field3);
7186
}
7287

7388
public static void main(String[] args) throws IOException, RunnerException {

Diff for: src/main/java/com/jsoniter/benchmark/skip_multi_levels/DeserPb.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,15 @@ public class DeserPb {
2121
@Setup(Level.Trial)
2222
public void benchSetup(BenchmarkParams params) {
2323
Pb.PbTestWriteObject obj = Pb.PbTestWriteObject.newBuilder()
24-
.addAllField1(Arrays.asList("1", "2", "3", "4", "5"))
24+
.addAllField1(Arrays.asList("1", "2", "3", "4", "5",
25+
"1", "2", "3", "4", "5",
26+
"1", "2", "3", "4", "5"))
2527
.setField2(Pb.PbTestWriteObject.Field2.newBuilder()
2628
.addAllField1(Arrays.asList("1", "2", "3", "4", "5"))
2729
.addAllField2(Arrays.asList("1", "2", "3", "4", "5"))
2830
.addAllField3(Arrays.asList("1", "2", "3", "4", "5"))
2931
.build())
30-
.setField3("xxxx-3")
32+
.setField3("x-3")
3133
.build();
3234
testData = obj.toByteArray();
3335
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package com.jsoniter.benchmark.skip_multi_levels;
2+
3+
import com.jsoniter.benchmark.All;
4+
import org.apache.thrift.TDeserializer;
5+
import org.apache.thrift.TException;
6+
import org.apache.thrift.TSerializer;
7+
import org.apache.thrift.protocol.TCompactProtocol;
8+
import org.junit.Test;
9+
import org.openjdk.jmh.Main;
10+
import org.openjdk.jmh.annotations.*;
11+
import org.openjdk.jmh.infra.BenchmarkParams;
12+
import org.openjdk.jmh.infra.Blackhole;
13+
import org.openjdk.jmh.runner.RunnerException;
14+
15+
import java.io.IOException;
16+
import java.util.Arrays;
17+
import java.util.HashMap;
18+
import java.util.List;
19+
import java.util.concurrent.TimeUnit;
20+
21+
/*
22+
Benchmark Mode Cnt Score Error Units
23+
DeserThrift.deser avgt 5 140635.170 ± 2962.132 ns/op
24+
*/
25+
@State(Scope.Thread)
26+
public class DeserThrift {
27+
28+
private TSerializer serializer;
29+
private TDeserializer deserializer;
30+
private byte[] testData;
31+
32+
@Setup(Level.Trial)
33+
public void benchSetup(BenchmarkParams params) throws TException {
34+
ThriftTestWriteObject testObject = new ThriftTestWriteObject();
35+
testObject.setField1(Arrays.asList("1", "2", "3", "4", "5",
36+
"1", "2", "3", "4", "5",
37+
"1", "2", "3", "4", "5"));
38+
HashMap<String, List<String>> field2 = new HashMap<>();
39+
field2.put("1", Arrays.asList("1", "2", "3", "4", "5"));
40+
field2.put("2", Arrays.asList("1", "2", "3", "4", "5"));
41+
field2.put("3", Arrays.asList("1", "2", "3", "4", "5"));
42+
testObject.setField2(field2);
43+
testObject.setField3("x-3");
44+
serializer = new TSerializer(new TCompactProtocol.Factory());
45+
deserializer = new TDeserializer(new TCompactProtocol.Factory());
46+
testData = serializer.serialize(testObject);
47+
}
48+
49+
@Test
50+
public void test() throws TException {
51+
// byte[] output = new TSerializer(new TCompactProtocol.Factory()).serialize(testObject);
52+
// System.out.println(output.length);
53+
}
54+
55+
@Benchmark
56+
@BenchmarkMode(Mode.AverageTime)
57+
@OutputTimeUnit(TimeUnit.NANOSECONDS)
58+
public void deser(Blackhole bh) throws TException {
59+
for (int i = 0; i < 1000; i++) {
60+
ThriftTestReadObject obj = new ThriftTestReadObject();
61+
deserializer.deserialize(obj, testData);
62+
bh.consume(obj);
63+
}
64+
}
65+
66+
public static void main(String[] args) throws IOException, RunnerException {
67+
All.loadJMH();
68+
Main.main(new String[]{
69+
"with_long_string.DeserThrift",
70+
"-i", "5",
71+
"-wi", "5",
72+
"-f", "1",
73+
});
74+
}
75+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
struct ThriftTestWriteObject
2+
{
3+
1: list<string> field1
4+
2: map<string,list<string>> field2
5+
3: string field3
6+
}
7+
struct ThriftTestReadObject
8+
{
9+
3: string field3
10+
}

0 commit comments

Comments
 (0)