成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS5系統API和5個開源庫的JSON解析速度測試

移動開發 iOS
我們選擇了四個包含json格式的數據的文件進行測試。每一個文件進行100的解析動作,對解析的時間進行比較。


iOS5新增了JSON解析的API,我們將其和其他五個開源的JSON解析庫進行了解析速度的測試,下面是測試的結果和工程代碼附件。

 

我們選擇的測試對象包含下面的這幾個框架,其中NSJSONSerialization是iOS5系統新增的JSON解析的API,需要iOS5的環境,如果您在更低的版本進行測試,應該屏蔽相應的代碼調用。

 

- [SBJSON (json-framework)](http://code.google.com/p/json-framework/)

- [TouchJSON (from touchcode)](http://code.google.com/p/touchcode/)

- [YAJL (objective-C bindings)](http://github.com/gabriel/yajl-objc)

- [JSONKit](https://github.com/johnezang/JSONKit)

- [NextiveJson](https://github.com/nextive/NextiveJson)

-[NSJSONSerialization](http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40010946)

 

我們選擇了四個包含json格式的數據的文件進行測試。每一個文件進行100的解析動作,對解析的時間進行比較。

 

工程包含以下的文件和框架:

 [[106698]]

測試時間間隔的的代碼的宏定義如下,其中計算的次數和解析的代碼由外部調用傳入:

#define RunWithCount(count, description, expr) \

do { \

CFAbsoluteTime start = CFAbsoluteTimeGetCurrent(); \

for(NSInteger i = 0; i < count; i++) { \

         NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; \

         expr; \

         [pool release]; \

} \

\

CFTimeInterval took = CFAbsoluteTimeGetCurrent() - start; \

NSLog(@"%@ %0.3f", description, took); \

\

} while (0)

 

這是外面調用的代碼,設置讀取的json文件和計算的次數,每一個函數在進行對應框架API的解析代碼:

         JSONTest *test = [[JSONTest alloc] init];

         NSInteger count = 100;

        [test runWithResourceName:@"twitter_public.json" count:count];

         [test runWithResourceName:@"lastfm.json" count:count];

         [test runWithResourceName:@"delicious_popular.json" count:count];

         [test runWithResourceName:@"yelp.json" count:count];

 

我們的測試的環境是Xcode 4.2和iOS5,計算次數是100次,這是計算的結果Log:

2011-11-24 14:48:59.441 JSONPerfTest[9716:207] SBJSON-twitter_public.json 0.335

2011-11-24 14:48:59.625 JSONPerfTest[9716:207] YAJL-twitter_public.json 0.183

2011-11-24 14:49:00.095 JSONPerfTest[9716:207] TouchJSON-twitter_public.json 0.469

2011-11-24 14:49:00.226 JSONPerfTest[9716:207] JSONKit-twitter_public.json 0.130

2011-11-24 14:49:00.390 JSONPerfTest[9716:207] NextiveJson-twitter_public.json 0.164

2011-11-24 14:49:00.504 JSONPerfTest[9716:207] NSJSONSerialization-twitter_public.json 0.113

2011-11-24 14:49:01.196 JSONPerfTest[9716:207] SBJSON-lastfm.json 0.691

2011-11-24 14:49:01.516 JSONPerfTest[9716:207] YAJL-lastfm.json 0.320

2011-11-24 14:49:02.367 JSONPerfTest[9716:207] TouchJSON-lastfm.json 0.850

2011-11-24 14:49:02.580 JSONPerfTest[9716:207] JSONKit-lastfm.json 0.212

2011-11-24 14:49:02.861 JSONPerfTest[9716:207] NextiveJson-lastfm.json 0.280

2011-11-24 14:49:03.039 JSONPerfTest[9716:207] NSJSONSerialization-lastfm.json 0.177

2011-11-24 14:49:03.546 JSONPerfTest[9716:207] SBJSON-delicious_popular.json 0.506

2011-11-24 14:49:03.787 JSONPerfTest[9716:207] YAJL-delicious_popular.json 0.240

2011-11-24 14:49:04.460 JSONPerfTest[9716:207] TouchJSON-delicious_popular.json 0.672

2011-11-24 14:49:04.668 JSONPerfTest[9716:207] JSONKit-delicious_popular.json 0.207

2011-11-24 14:49:04.904 JSONPerfTest[9716:207] NextiveJson-delicious_popular.json 0.234

2011-11-24 14:49:05.072 JSONPerfTest[9716:207] NSJSONSerialization-delicious_popular.json 0.168

2011-11-24 14:49:05.434 JSONPerfTest[9716:207] SBJSON-yelp.json 0.361

2011-11-24 14:49:05.633 JSONPerfTest[9716:207] YAJL-yelp.json 0.198

2011-11-24 14:49:06.154 JSONPerfTest[9716:207] TouchJSON-yelp.json 0.519

2011-11-24 14:49:06.310 JSONPerfTest[9716:207] JSONKit-yelp.json 0.155

2011-11-24 14:49:06.497 JSONPerfTest[9716:207] NextiveJson-yelp.json 0.186

2011-11-24 14:49:06.637 JSONPerfTest[9716:207] NSJSONSerialization-yelp.json 0.140

 

將上面的數據整理成下面的圖表:

 [[106699]]

測試的結果顯示,系統的API的解析速度最快,我們在工程項目中選擇使用,也是應用較為廣泛的SBJSON的解析速度為倒數第二差,令我大跌眼鏡。

與系統API較為接近的應該是JSONKit。

 

這里沒有對API的開放接口和使用方式進行比較,若單純基于以上解析速度的測試:

1:iOS5應該選擇系統的API進行

2:不能使用系統API的應該選擇JSONKit

 

程序附件:

http://arthurchen.blog.51cto.com/attachment/201111/2483760_1322144362.zip

本文word文檔:

http://arthurchen.blog.51cto.com/attachment/201111/2483760_1322144787.zip

責任編輯:冰凝兒 來源: 轉自:http://blog.csdn.net/arthurchenjs/article/de
相關推薦

2012-04-04 22:36:52

iOS5

2011-09-19 15:42:33

TwitteriOS5

2011-08-09 14:25:43

蘋果iCloudiOS5

2012-01-18 14:14:29

iOS教程iOS5

2012-05-27 20:21:40

2012-01-18 13:51:39

2013-03-25 13:41:10

iOS5ARC內存管理

2011-05-31 22:53:14

喬布斯WWDCiCloud

2013-07-22 14:47:56

iOS開發iOS5中ASIHtt

2019-11-26 09:11:50

數據庫JavaHadoop

2011-06-07 07:06:33

iOS 5iOSWWDC

2019-09-09 14:52:23

開源速讀應用

2018-11-02 08:30:43

開源數據庫技巧

2011-10-05 01:51:20

iOS5蘋果

2011-08-09 14:47:28

蘋果iOS 5

2020-12-01 10:59:05

人工智能

2011-08-05 11:04:27

iOS 5蘋果

2020-08-23 09:12:52

JavaJava IDE框架

2011-06-07 06:59:51

iOS 5iOS蘋果

2013-03-27 10:51:44

iOSjson解析網絡交互數據格式解析
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国外成人在线视频 | 伊人伊人伊人 | 婷婷久久一区 | 日韩精品中文字幕在线 | 日韩在线观看一区二区三区 | 亚洲精品99久久久久久 | 在线观看视频福利 | 欧美黄在线观看 | 精品欧美一区二区三区久久久 | 天天色影视综合 | 操久久 | 欧美成年网站 | 欧美日韩亚洲国产 | 第一色在线 | 亚洲第一天堂无码专区 | 成人一区二区三区在线观看 | 一区二区三区欧美 | 超级黄色一级片 | 日韩三级在线 | 久久一久久 | 国产一区二区三区四区 | 欧美久久精品一级黑人c片 91免费在线视频 | 亚洲二区视频 | 丝袜久久 | 玖玖色在线视频 | 日韩精品免费视频 | 毛片a级| 伊人99| 精品国产乱码久久久久久a丨 | 黄久久久| 欧美成人精品在线观看 | 色婷婷综合久久久中字幕精品久久 | 国产精品久久久久久久久久软件 | 99久久精品免费看国产四区 | 国产成人福利 | 丝袜美腿一区二区三区动态图 | 欧美综合一区二区 | 日日草天天干 | av一区二区三区在线观看 | 亚洲欧洲在线观看视频 | www.日日夜夜 |