1. 程式人生 > >Gson與Fastjson效能比較

Gson與Fastjson效能比較

/**
 * 測試比較Gson與Fastjson效能,發現數據量少的情況下fastjson比Gson稍慢,
 * 資料量大的情況下fastjson比Gson稍快,可以修改2個迴圈的引數進行測試。:
 * 
 *
 */
public class TestJson
{
    public static void main(String[] args)
    {
        compareJson();
    }

    private static void compareJson()
    {
        Gson gson = new Gson();
        int count = 0;
        List<Member> members = new ArrayList<Member >();
        for (int i=0; i<5000 ; i++)
        {
            Member member = new Member();
            member.setEmail("test"+i+"@qq.com");
            member.setIdCardNo("idcard"+i);
            member.setUsername("zhangsan"+i);
            member.setOrgid(i+"");
            member.setRealName("張三"+i);
            member.setPassword("123456");
            member.setOrgName("tianwen"+i);
            
            members.add(member);
            
        }
        for (int j=0; j<2000 ; j++)
        {  
        
            long start = System.currentTimeMillis();
            String jsonString = JSON.toJSONString(members);
            List<Member> memberList = JSON.parseObject(jsonString, List.class);
            long end = System.currentTimeMillis()- start;
            
            long start2 = System.currentTimeMillis();
            String gsonString = gson.toJson(members);
            List<Member> member2List = gson.fromJson(gsonString, List.class);
            long end2 = System.currentTimeMillis()- start2;
            
            if ((end -end2) < 0)
            {
                count ++ ;
                System.out.println("fastjson: " + end + "\r\ngsonjson: " + end2 + "\r\nfastjson-gsonjson: " + (end -end2) );
            }
           
        }
        System.out.println(count);
    }
}