昨天发布了 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 小工具,并未刻意追求高性能,也没有用到什么奇奇怪怪的优化方法,这次性能提升到这个程度,我自己也万万没想到。