昨天发布了 jfinal 4.9,在 oschina 上有人质疑 JFinalJson 性能是 jackson 的 3 倍,以下将前天使用的初步测试代码贴出来:
package com.jfinal.json;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class Performance {
static long times = 100 * 10000;
static long start, end;
static Map<Object, Object> data = new HashMap<>();
static void prepare() {
data.put("key1", 1);
data.put("key2", new Date());
data.put("key3", "奔涌吧后浪");
}
static void start() {
start = System.currentTimeMillis();
}
static void end() {
end = System.currentTimeMillis();
System.out.println(end - start);
}
static String test(Json json) {
String ret = "";
start();
for (int i=0; i<times; i++) {
ret = json.toJson(data);
}
end();
return ret;
}
public static void main(String[] args) {
prepare();
String ret;
ret = test(Jackson.getJson());
System.out.println(ret);
ret = test(JFinalJson.getJson());
System.out.println(ret);
}
}这里重申一下,这个测试代码十分初步,并不能说明 JFinalJson 的性能就一定比 jackson 高出 3 倍。
JFinalJson 这次的优化的原因是老版本是 9 年前的代码,完全没有考虑性能,jfinal 一直在打磨迭代,这次轮到打磨 JFinalJson。
JFinalJson 作为 jfinal 中的一个非专业性的 json 小工具,并未刻意追求高性能,也没有用到什么奇奇怪怪的优化方法,这次性能提升到这个程度,我自己也万万没想到。