編輯:關於android開發
前段時間@寒江不釣同學針對國內Top500和Google Play Top200 Android應用做了全面的分析(具體分析報告見文末的參考資料),其中有涉及到對主流應用使用json框架Gson、FastJson、Jackson的統計,具體情況如下:
@org.junit.Test
public void TestSpeed() throws Exception {
List<Foods> foods = foodDao.selectAll(Foods.class);
System.out.println("-------------gson-----------");
long gsonStart = System.currentTimeMillis();
gsonC(foods);//用Gson進行拆包 和 解析 並循環操作50次
long gsonEnd = System.currentTimeMillis();
System.out.println("gsonGaps:" + (gsonEnd - gsonStart) / 50);
System.out.println("-------------gson-----------");
System.out.println("-------------FastJson-----------");
long fastStart = System.currentTimeMillis();
fastJsonC(foods);// 用FastJson進行拆包 和 解析 並循環操作50次
long fastEnd = System.currentTimeMillis();
System.out.println("gsonGaps:" + (fastEnd - fastStart) / 50);
System.out.println("-------------FastJson-----------");
System.out.println("-------------JSON-----------");
long jsonStart = System.currentTimeMillis();
jsonC(foods);// 用org.json進行拆包 和 解析 並循環操作50次
long jsonEnd = System.currentTimeMillis();
System.out.println("gsonGaps:" + (jsonEnd - jsonStart) / 50);
System.out.println("-------------JSON-----------");
}
調用的方法必須是 synchronized 同步
的,即運行完該方法後才執行下面的代碼
private synchronized void jsonC(List<Foods> foods) throws Exception {
for (int j = 0; j < 50; j++) {
String jsonString = JsonTools.createJsonString("json", foods);
JSONObject object = new JSONObject(jsonString);
JSONArray array = object.getJSONArray("json");
List<Foods> list2 = new ArrayList<Foods>();
for (int i = 0; i < array.length(); i++) {
JSONObject foodObject = (JSONObject) array.get(i);
Foods foods2 = new Foods(foodObject.getInt("id"),
foodObject.getString("cookclass"),
foodObject.getString("name"),
foodObject.getString("description"),
foodObject.getString("food"),
foodObject.getString("img"),
foodObject.getString("images"),
foodObject.getString("keywords"),
foodObject.getString("message"),
foodObject.getString("url"));
list2.add(foods2);
}
String s3 = list2.toString();
}
}
private synchronized void fastJsonC(List<Foods> foods) {
for (int i = 0; i < 50; i++) {
String fastString = FastJsonTools.createJsonString(foods);
String s2 = FastJsonTools.createJsonToListBean(fastString,
Foods.class).toString();
}
}
private synchronized void gsonC(List<Foods> foods) {
for (int i = 0; i < 50; i++) {
String gsonString = GsonTools.createJsonString(foods);
String s1 = GsonTools.StringTolist(gsonString, Foods[].class)
.toString();
}
}
1萬條數據
、2萬條數據
和100條數據
各個類庫所用的的平均時間(這個時間不包括查詢數據庫所用的時間)
1.1萬
2. 2萬
3.100條
經過這次測試之後,確實驗證了阿裡巴巴的FastJson相對來說是挺快的。因為fastjson在復雜類型的Bean轉換Json上會出現一些問題,可能會出現引用的類型,導致Json轉換出錯,所以我決定還是fastjson和gson並用,
不要求效率的話就用gson,要求高效率的話就用fastjson。
ELK Stack最新版本測試二配置篇閱讀本文前請浏覽詳細配置如下:http://blog.chinaunix.net/uid-25057421-id-5567766.h
Android應用程序安裝過程淺析 我們知道在android中,安裝應用是由PackageManager來管理的,但是我們發現PackageManager是一個抽象類
Android天天數錢游戲項目源碼,android項目源碼Android天天數錢游戲源碼,源碼功能,天天數錢,這個游戲現在很多線上的小游戲都有這個了,游戲項目是在基於an
Android_實用技術(1)—— Notification的創建流程和使用方法,notification創建 android.app.Notification an