JSON效能比對

來源:互聯網
上載者:User

大家都知道JSON是一個與平台無關的一種資料格式,所以它也得到來廣大編程者的認可,在目前各種JSON格式的第三方LIB都層出不窮,如雨後春生一樣,面對這些,我們到底取怎麼選擇呢,首先,我們來比對一下目前其相關的JSON解析庫的效能:Json BecnhMarkBench ProtoleThose test are generate by parrsing 50.000 pre-build json string.to minimise gc effect on bench, a new VM is lanched for each test.New TestsThe bench run on an intel P9700 CPU, using sun JVM 1.6.22 64bit + SSD each bench had been lunch 10 times, the best time had been keeped.BenchMark run directly after the JVM startupdate on 30 MayJsonIJ version is now 0.2.7Json-smart is now 1.0.6.3argo is now 2.8BenchMark : benchResult display as % of the fastest API. Lower is better, for example 400% means that JSon-smart is 4 times faster.Test Sojo Argo json-lib JsonMe org.json json-Simple Jackson StringTree JsonIJ Json-fast Json-Smartmixte 1 129 % 822 % 834 % 395 % 437 % 324 % 269 % 287 % 205 % 134 % 100 %text 1 628 % 965 % 879 % 363 % 610 % 434 % 419 % 369 % 271 % 174 % 100 %int 1 300 % 966 % 718 % 359 % 521 % 281 % 286 % 293 % 224 % 118 % 100 %unicode 1 177 % 674 % 549 % 218 % 445 % 351 % 315 % 216 % 256 % 147 % 100 %boolean 1 285 % 724 % 809 % 391 % 498 % 332 % 291 % 210 % 228 % 138 % 100 %float 1 145 % 794 % 711 % 1 152 % 450 % 243 % 265 % 272 % 201 % 126 % 100 %TOTAL 1 251 % 818 % 739 % 511 % 484 % 319 % 300 % 272 % 228 % 137 % 100 %BenchMark with preload classesNot updated yetpreloading class look to have no significant effect, due to SSD usage.Test JsonIJ Sojo Argo json-lib org.json JsonMe json-Simple Jackson StringTree Json-fast Json-Smartmixte 1 302 % 1 150 % 804 % 858 % 452 % 365 % 323 % 258 % 275 % 133 % 100 %text 1 772 % 1 492 % 914 % 782 % 582 % 332 % 409 % 355 % 332 % 159 % 100 %int 1 266 % 1 345 % 907 % 723 % 447 % 290 % 279 % 250 % 304 % 118 % 100 %unicode N/A 1 185 % 674 % 538 % 448 % 216 % 358 % 280 % 216 % 135 % 100 %boolean 1 401 % 1 168 % 680 % 717 % 459 % 283 % 300 % 254 % 192 % 129 % 100 %float 1 024 % 1 129 % 740 % 707 % 384 % 1 043 % 247 % 242 % 280 % 125 % 100 %TOTAL N/A 1 230 % 781 % 717 % 454 % 452 % 314 % 269 % 266 % 132 % 100 %Comment by tsaloranta@gmail.com, May 16, 2011Where is the source? Are you warming up GC (if not, this test is totally meaningless)? What kind of JSON are you parsing?Comment by project member uriel.chemouni, May 16, 2011Sources are available now: http://json-smart.googlecode.com/svn/trunk/bench/Json test string generator: http://json-smart.googlecode.com/svn/trunk/bench/src/net/minidev/bench/json/TestData.javaa new JVM is started for each test, GC is never explicitely called.Comment by tsaloranta@gmail.com, May 19, 2011Whops, meant JVM warmed up, not GC. :-)It is necessary to run code to be tested for couple of seconds first on new JVM, before taking measurements; otherwise test is about how fast JVM can load (and possibly inline) bytecode.Comment by project member uriel.chemouni, May 23, 2011Warmed up test is now available.Comment by Programm...@gmail.com, Jun 22, 2011Using the jvm-serializers (https://github.com/eishay/jvm-serializers/wiki) test suite, I get significantly different results. When testing with about 736 bytes of JSON input (in java.lang.String format), my results show the different APIs performing in the following order, ranked from fastest to slowest.                                ser     deser   totaljson/jackson-databind-strings   6034    8085    14209json/fastjson-databind          5837    8924    14826json/json-smart/manual/tree     13104   9644    23182json/org.json/manual/tree       16404   20039   36526json/json.simple/manual/tree    15971   21954   38170json/jsonij-manual/tree         75124   16888   92275json/argo-manual/tree-builders  176566  51439   228847json/json-lib-databind          73202   169966  243474Using the json-smart performance as the baseline, here are the same numbers as percentages (rounded to the nearest whole number).                                ser     deser   totaljson/jackson-databind-strings   46%     84%     61%json/fastjson-databind          45%     93%     64%json/json-smart/manual/tree     100%    100%    100%json/org.json/manual/tree       125%    208%    158%json/json.simple/manual/tree    122%    228%    165%json/jsonij-manual/tree         573%    175%    398%json/argo-manual/tree-builders  1347%   533%    987%json/json-lib-databind          559%    1762%   1050%These results place the performance of some of the different APIs in significantly different orders, and some with significantly different percentages.As time permits, I'll try to figure out what the cause of the different results is.(I have no affiliation with any of these projects, or with any other JSON processing project.) 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.