JSON序列化及反序列化工具
本JSON是基于JAVA8编写,对比阿里的JSON三次测试结果如下:
10万次序列化,1万次反序列化,毫秒。
阿里序列化时间 1122 1054 1115
阿里反序列化时间 409 423 412
HZS序列化时间 884 864 880
HZS反序列化时间 392 375 394
JAVA7版已经逼近阿里的速度,JAVA8版利用了闭包技术,充份发挥多核优势,已经超过阿里的速度。
测试代码如下:
{
org.hzs.json.JSONObject bjson;
java.util.LinkedList<String> jd_Set = new java.util.LinkedList<>();
java.util.Random d1 = new java.util.Random();
java.util.UUID d2;
int ji_i;
long ji起始时间_i;
long ji截至时间_i;
java.util.Date date = new java.util.Date();
//生成1万个序列化後的文本
for (ji_i = 0; ji_i < 10000; ji_i++) {
bjson = org.hzs.json.JSONObject.d副本();
bjson.put("a1", d1.nextDouble());
bjson.put("a2", d1.nextDouble());
bjson.put("a3", d1.nextDouble());
bjson.put("a4", d1.nextInt());
bjson.put("a5", d1.nextInt());
bjson.put("a6", d1.nextLong());
bjson.put("a7", d1.nextBoolean());
d2 = java.util.UUID.randomUUID();
bjson.put("b1", d2.toString());
d2 = java.util.UUID.randomUUID();
bjson.put("b2", d2.toString());
d2 = java.util.UUID.randomUUID();
bjson.put("b3", d2.toString());
d2 = java.util.UUID.randomUUID();
bjson.put("b4", d2.toString());
bjson.put("c", new java.util.Date());
jd_Set.add(bjson.toString());
}
com.alibaba.fastjson.JSONObject ajson, a1json = new com.alibaba.fastjson.JSONObject();
ji起始时间_i = java.util.Calendar.getInstance().getTimeInMillis();
for (ji_i = 0; ji_i < 100000; ji_i++) {
ajson = (com.alibaba.fastjson.JSONObject) a1json.clone();
ajson.put("a1", d1.nextDouble());
ajson.put("a2", d1.nextDouble());
ajson.put("a3", d1.nextDouble());
ajson.put("a4", d1.nextInt());
ajson.put("a5", d1.nextInt());
ajson.put("a6", d1.nextLong());
ajson.put("a7", d1.nextBoolean());
d2 = java.util.UUID.randomUUID();
ajson.put("b1", d2.toString());
d2 = java.util.UUID.randomUUID();
ajson.put("b2", d2.toString());
d2 = java.util.UUID.randomUUID();
ajson.put("b3", d2.toString());
d2 = java.util.UUID.randomUUID();
ajson.put("b4", d2.toString());
ajson.put("c", new java.util.Date());
ajson.toString();
}
ji截至时间_i = java.util.Calendar.getInstance().getTimeInMillis();
System.out.print("阿里变量序列化时间:");
System.out.println(ji截至时间_i - ji起始时间_i);
ji起始时间_i = java.util.Calendar.getInstance().getTimeInMillis();
for (ji_i = 0; ji_i < 10000; ji_i++) {
ajson = com.alibaba.fastjson.JSONObject.parseObject(jd_Set.get(ji_i));
}
ji截至时间_i = java.util.Calendar.getInstance().getTimeInMillis();
System.out.print("阿里反序列化时间:");
System.out.println(ji截至时间_i - ji起始时间_i);
ji起始时间_i = java.util.Calendar.getInstance().getTimeInMillis();
for (ji_i = 0; ji_i < 100000; ji_i++) {
bjson = org.hzs.json.JSONObject.d副本();
bjson.put("a1", d1.nextDouble());
bjson.put("a2", d1.nextDouble());
bjson.put("a3", d1.nextDouble());
bjson.put("a4", d1.nextInt());
bjson.put("a5", d1.nextInt());
bjson.put("a6", d1.nextLong());
bjson.put("a7", d1.nextBoolean());
d2 = java.util.UUID.randomUUID();
bjson.put("b1", d2.toString());
d2 = java.util.UUID.randomUUID();
bjson.put("b2", d2.toString());
d2 = java.util.UUID.randomUUID();
bjson.put("b3", d2.toString());
d2 = java.util.UUID.randomUUID();
bjson.put("b4", d2.toString());
bjson.put("c", new java.util.Date());
bjson.toString();
}
ji截至时间_i = java.util.Calendar.getInstance().getTimeInMillis();
System.out.print("HZS变量序列化时间:");
System.out.println(ji截至时间_i - ji起始时间_i);
ji起始时间_i = java.util.Calendar.getInstance().getTimeInMillis();
for (ji_i = 0; ji_i < 10000; ji_i++) {
bjson = org.hzs.json.JSONObject.d副本(jd_Set.get(ji_i));
}
ji截至时间_i = java.util.Calendar.getInstance().getTimeInMillis();
System.out.print("HZS反序列化时间:");
System.out.println(ji截至时间_i - ji起始时间_i);
}
JSON序列化与反序列化JAVA工具
本JSON是基于JAVA7编写,对比阿里的JSON三次测试结果如下:
10万次序列化,1万次反序列化,毫秒。
阿里序列化时间 1229 1133 1179
阿里反序列化时间 478 523 466
HZS序列化时间 1089 998 1010
HZS反序列化时间 606 623 635
测试代码如下:
{
org.hzs.json.JSONObject bjson;
java.util.LinkedList<String> jd_Set = new java.util.LinkedList<>();
java.util.Random d1 = new java.util.Random();
java.util.UUID d2;
int ji_i;
long ji起始时间_i;
long ji截至时间_i;
java.util.Date date = new java.util.Date();
//生成1万个序列化後的文本
for (ji_i = 0; ji_i < 10000; ji_i++) {
bjson = org.hzs.json.JSONObject.d副本();
bjson.put("a1", d1.nextDouble());
bjson.put("a2", d1.nextDouble());
bjson.put("a3", d1.nextDouble());
bjson.put("a4", d1.nextInt());
bjson.put("a5", d1.nextInt());
bjson.put("a6", d1.nextLong());
bjson.put("a7", d1.nextBoolean());
d2 = java.util.UUID.randomUUID();
bjson.put("b1", d2.toString());
d2 = java.util.UUID.randomUUID();
bjson.put("b2", d2.toString());
d2 = java.util.UUID.randomUUID();
bjson.put("b3", d2.toString());
d2 = java.util.UUID.randomUUID();
bjson.put("b4", d2.toString());
bjson.put("c", new java.util.Date());
jd_Set.add(bjson.toString());
}
com.alibaba.fastjson.JSONObject ajson, a1json = new com.alibaba.fastjson.JSONObject();
ji起始时间_i = java.util.Calendar.getInstance().getTimeInMillis();
for (ji_i = 0; ji_i < 100000; ji_i++) {
ajson = (com.alibaba.fastjson.JSONObject) a1json.clone();
ajson.put("a1", d1.nextDouble());
ajson.put("a2", d1.nextDouble());
ajson.put("a3", d1.nextDouble());
ajson.put("a4", d1.nextInt());
ajson.put("a5", d1.nextInt());
ajson.put("a6", d1.nextLong());
ajson.put("a7", d1.nextBoolean());
d2 = java.util.UUID.randomUUID();
ajson.put("b1", d2.toString());
d2 = java.util.UUID.randomUUID();
ajson.put("b2", d2.toString());
d2 = java.util.UUID.randomUUID();
ajson.put("b3", d2.toString());
d2 = java.util.UUID.randomUUID();
ajson.put("b4", d2.toString());
ajson.put("c", new java.util.Date());
ajson.toString();
}
ji截至时间_i = java.util.Calendar.getInstance().getTimeInMillis();
System.out.print("阿里变量序列化时间:");
System.out.println(ji截至时间_i - ji起始时间_i);
ji起始时间_i = java.util.Calendar.getInstance().getTimeInMillis();
for (ji_i = 0; ji_i < 10000; ji_i++) {
ajson = com.alibaba.fastjson.JSONObject.parseObject(jd_Set.get(ji_i));
}
ji截至时间_i = java.util.Calendar.getInstance().getTimeInMillis();
System.out.print("阿里反序列化时间:");
System.out.println(ji截至时间_i - ji起始时间_i);
ji起始时间_i = java.util.Calendar.getInstance().getTimeInMillis();
for (ji_i = 0; ji_i < 100000; ji_i++) {
bjson = org.hzs.json.JSONObject.d副本();
bjson.put("a1", d1.nextDouble());
bjson.put("a2", d1.nextDouble());
bjson.put("a3", d1.nextDouble());
bjson.put("a4", d1.nextInt());
bjson.put("a5", d1.nextInt());
bjson.put("a6", d1.nextLong());
bjson.put("a7", d1.nextBoolean());
d2 = java.util.UUID.randomUUID();
bjson.put("b1", d2.toString());
d2 = java.util.UUID.randomUUID();
bjson.put("b2", d2.toString());
d2 = java.util.UUID.randomUUID();
bjson.put("b3", d2.toString());
d2 = java.util.UUID.randomUUID();
bjson.put("b4", d2.toString());
bjson.put("c", new java.util.Date());
bjson.toString();
}
ji截至时间_i = java.util.Calendar.getInstance().getTimeInMillis();
System.out.print("HZS变量序列化时间:");
System.out.println(ji截至时间_i - ji起始时间_i);
ji起始时间_i = java.util.Calendar.getInstance().getTimeInMillis();
for (ji_i = 0; ji_i < 10000; ji_i++) {
bjson = org.hzs.json.JSONObject.d副本(jd_Set.get(ji_i));
}
ji截至时间_i = java.util.Calendar.getInstance().getTimeInMillis();
System.out.print("HZS反序列化时间:");
System.out.println(ji截至时间_i - ji起始时间_i);
}