mirror of
https://github.com/boostorg/json.git
synced 2026-02-09 23:22:27 +00:00
549 lines
22 KiB
HTML
549 lines
22 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
|
|
|
|
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
Official repository: https://github.com/vinniefalco/json
|
|
-->
|
|
<html>
|
|
<head>
|
|
<font face="arial"/>
|
|
</head>
|
|
<body>
|
|
<h1>Boost.JSON Benchmarks</h1>
|
|
<div id="benchmarks">
|
|
</div>
|
|
<br>
|
|
<textarea id="data" cols="60" rows="20" overflow="hidden" onkeyup="autosize(this)">
|
|
|
|
|
|
Parse strings.json,clang x64/sse2,boost (pool),6002
|
|
Parse strings.json,clang x64/sse2,boost,3060
|
|
Parse strings.json,clang x64/sse2,rapidjson (pool),464
|
|
Parse strings.json,clang x64/sse2,rapidjson,433
|
|
Parse strings.json,clang x64/sse2,nlohmann,233
|
|
Parse integers-32.json,clang x64/sse2,boost (pool),422
|
|
Parse integers-32.json,clang x64/sse2,boost,395
|
|
Parse integers-32.json,clang x64/sse2,rapidjson (pool),291
|
|
Parse integers-32.json,clang x64/sse2,rapidjson,279
|
|
Parse integers-32.json,clang x64/sse2,nlohmann,93
|
|
Parse integers-64.json,clang x64/sse2,boost (pool),695
|
|
Parse integers-64.json,clang x64/sse2,boost,648
|
|
Parse integers-64.json,clang x64/sse2,rapidjson (pool),414
|
|
Parse integers-64.json,clang x64/sse2,rapidjson,400
|
|
Parse integers-64.json,clang x64/sse2,nlohmann,109
|
|
Parse twitter.json,clang x64/sse2,boost (pool),506
|
|
Parse twitter.json,clang x64/sse2,boost,237
|
|
Parse twitter.json,clang x64/sse2,rapidjson (pool),441
|
|
Parse twitter.json,clang x64/sse2,rapidjson,277
|
|
Parse twitter.json,clang x64/sse2,nlohmann,93
|
|
Parse small.json,clang x64/sse2,boost (pool),316
|
|
Parse small.json,clang x64/sse2,boost,140
|
|
Parse small.json,clang x64/sse2,rapidjson (pool),314
|
|
Parse small.json,clang x64/sse2,rapidjson,289
|
|
Parse small.json,clang x64/sse2,nlohmann,53
|
|
Parse array.json,clang x64/sse2,boost (pool),281
|
|
Parse array.json,clang x64/sse2,boost,252
|
|
Parse array.json,clang x64/sse2,rapidjson (pool),269
|
|
Parse array.json,clang x64/sse2,rapidjson,259
|
|
Parse array.json,clang x64/sse2,nlohmann,80
|
|
Parse random.json,clang x64/sse2,boost (pool),351
|
|
Parse random.json,clang x64/sse2,boost,187
|
|
Parse random.json,clang x64/sse2,rapidjson (pool),399
|
|
Parse random.json,clang x64/sse2,rapidjson,389
|
|
Parse random.json,clang x64/sse2,nlohmann,67
|
|
Parse citm_catalog.json,clang x64/sse2,boost (pool),656
|
|
Parse citm_catalog.json,clang x64/sse2,boost,288
|
|
Parse citm_catalog.json,clang x64/sse2,rapidjson (pool),855
|
|
Parse citm_catalog.json,clang x64/sse2,rapidjson,534
|
|
Parse citm_catalog.json,clang x64/sse2,nlohmann,113
|
|
Parse canada.json,clang x64/sse2,boost (pool),409
|
|
Parse canada.json,clang x64/sse2,boost,234
|
|
Parse canada.json,clang x64/sse2,rapidjson (pool),361
|
|
Parse canada.json,clang x64/sse2,rapidjson,238
|
|
Parse canada.json,clang x64/sse2,nlohmann,40
|
|
Serialize strings.json,clang x64/sse2,boost (pool),7995
|
|
Serialize strings.json,clang x64/sse2,boost,6963
|
|
Serialize strings.json,clang x64/sse2,rapidjson (pool),6539
|
|
Serialize strings.json,clang x64/sse2,rapidjson,6429
|
|
Serialize strings.json,clang x64/sse2,nlohmann,273
|
|
Serialize integers-32.json,clang x64/sse2,boost (pool),705
|
|
Serialize integers-32.json,clang x64/sse2,boost,704
|
|
Serialize integers-32.json,clang x64/sse2,rapidjson (pool),685
|
|
Serialize integers-32.json,clang x64/sse2,rapidjson,684
|
|
Serialize integers-32.json,clang x64/sse2,nlohmann,557
|
|
Serialize integers-64.json,clang x64/sse2,boost (pool),1060
|
|
Serialize integers-64.json,clang x64/sse2,boost,1058
|
|
Serialize integers-64.json,clang x64/sse2,rapidjson (pool),1021
|
|
Serialize integers-64.json,clang x64/sse2,rapidjson,1009
|
|
Serialize integers-64.json,clang x64/sse2,nlohmann,760
|
|
Serialize twitter.json,clang x64/sse2,boost (pool),1728
|
|
Serialize twitter.json,clang x64/sse2,boost,1670
|
|
Serialize twitter.json,clang x64/sse2,rapidjson (pool),1063
|
|
Serialize twitter.json,clang x64/sse2,rapidjson,1175
|
|
Serialize twitter.json,clang x64/sse2,nlohmann,325
|
|
Serialize small.json,clang x64/sse2,boost (pool),1715
|
|
Serialize small.json,clang x64/sse2,boost,1722
|
|
Serialize small.json,clang x64/sse2,rapidjson (pool),844
|
|
Serialize small.json,clang x64/sse2,rapidjson,859
|
|
Serialize small.json,clang x64/sse2,nlohmann,259
|
|
Serialize array.json,clang x64/sse2,boost (pool),481
|
|
Serialize array.json,clang x64/sse2,boost,480
|
|
Serialize array.json,clang x64/sse2,rapidjson (pool),390
|
|
Serialize array.json,clang x64/sse2,rapidjson,390
|
|
Serialize array.json,clang x64/sse2,nlohmann,272
|
|
Serialize random.json,clang x64/sse2,boost (pool),1194
|
|
Serialize random.json,clang x64/sse2,boost,1183
|
|
Serialize random.json,clang x64/sse2,rapidjson (pool),673
|
|
Serialize random.json,clang x64/sse2,rapidjson,681
|
|
Serialize random.json,clang x64/sse2,nlohmann,312
|
|
Serialize citm_catalog.json,clang x64/sse2,boost (pool),2266
|
|
Serialize citm_catalog.json,clang x64/sse2,boost,2136
|
|
Serialize citm_catalog.json,clang x64/sse2,rapidjson (pool),1713
|
|
Serialize citm_catalog.json,clang x64/sse2,rapidjson,1735
|
|
Serialize citm_catalog.json,clang x64/sse2,nlohmann,766
|
|
Serialize canada.json,clang x64/sse2,boost (pool),455
|
|
Serialize canada.json,clang x64/sse2,boost,438
|
|
Serialize canada.json,clang x64/sse2,rapidjson (pool),258
|
|
Serialize canada.json,clang x64/sse2,rapidjson,249
|
|
Serialize canada.json,clang x64/sse2,nlohmann,129
|
|
|
|
Parse strings.json,msvc x64/sse2,boost (pool),5381
|
|
Parse strings.json,msvc x64/sse2,boost,2903
|
|
Parse strings.json,msvc x64/sse2,rapidjson (pool),337
|
|
Parse strings.json,msvc x64/sse2,rapidjson,321
|
|
Parse strings.json,msvc x64/sse2,nlohmann,167
|
|
Parse integers-32.json,msvc x64/sse2,boost (pool),371
|
|
Parse integers-32.json,msvc x64/sse2,boost,345
|
|
Parse integers-32.json,msvc x64/sse2,rapidjson (pool),288
|
|
Parse integers-32.json,msvc x64/sse2,rapidjson,278
|
|
Parse integers-32.json,msvc x64/sse2,nlohmann,84
|
|
Parse integers-64.json,msvc x64/sse2,boost (pool),607
|
|
Parse integers-64.json,msvc x64/sse2,boost,562
|
|
Parse integers-64.json,msvc x64/sse2,rapidjson (pool),411
|
|
Parse integers-64.json,msvc x64/sse2,rapidjson,399
|
|
Parse integers-64.json,msvc x64/sse2,nlohmann,90
|
|
Parse twitter.json,msvc x64/sse2,boost (pool),384
|
|
Parse twitter.json,msvc x64/sse2,boost,210
|
|
Parse twitter.json,msvc x64/sse2,rapidjson (pool),331
|
|
Parse twitter.json,msvc x64/sse2,rapidjson,237
|
|
Parse twitter.json,msvc x64/sse2,nlohmann,86
|
|
Parse small.json,msvc x64/sse2,boost (pool),253
|
|
Parse small.json,msvc x64/sse2,boost,156
|
|
Parse small.json,msvc x64/sse2,rapidjson (pool),248
|
|
Parse small.json,msvc x64/sse2,rapidjson,188
|
|
Parse small.json,msvc x64/sse2,nlohmann,58
|
|
Parse array.json,msvc x64/sse2,boost (pool),254
|
|
Parse array.json,msvc x64/sse2,boost,229
|
|
Parse array.json,msvc x64/sse2,rapidjson (pool),241
|
|
Parse array.json,msvc x64/sse2,rapidjson,236
|
|
Parse array.json,msvc x64/sse2,nlohmann,74
|
|
Parse random.json,msvc x64/sse2,boost (pool),257
|
|
Parse random.json,msvc x64/sse2,boost,167
|
|
Parse random.json,msvc x64/sse2,rapidjson (pool),302
|
|
Parse random.json,msvc x64/sse2,rapidjson,291
|
|
Parse random.json,msvc x64/sse2,nlohmann,66
|
|
Parse citm_catalog.json,msvc x64/sse2,boost (pool),530
|
|
Parse citm_catalog.json,msvc x64/sse2,boost,286
|
|
Parse citm_catalog.json,msvc x64/sse2,rapidjson (pool),788
|
|
Parse citm_catalog.json,msvc x64/sse2,rapidjson,502
|
|
Parse citm_catalog.json,msvc x64/sse2,nlohmann,104
|
|
Parse canada.json,msvc x64/sse2,boost (pool),379
|
|
Parse canada.json,msvc x64/sse2,boost,220
|
|
Parse canada.json,msvc x64/sse2,rapidjson (pool),373
|
|
Parse canada.json,msvc x64/sse2,rapidjson,245
|
|
Parse canada.json,msvc x64/sse2,nlohmann,37
|
|
Serialize strings.json,msvc x64/sse2,boost (pool),6646
|
|
Serialize strings.json,msvc x64/sse2,boost,5962
|
|
Serialize strings.json,msvc x64/sse2,rapidjson (pool),5775
|
|
Serialize strings.json,msvc x64/sse2,rapidjson,5671
|
|
Serialize strings.json,msvc x64/sse2,nlohmann,145
|
|
Serialize integers-32.json,msvc x64/sse2,boost (pool),728
|
|
Serialize integers-32.json,msvc x64/sse2,boost,723
|
|
Serialize integers-32.json,msvc x64/sse2,rapidjson (pool),717
|
|
Serialize integers-32.json,msvc x64/sse2,rapidjson,720
|
|
Serialize integers-32.json,msvc x64/sse2,nlohmann,510
|
|
Serialize integers-64.json,msvc x64/sse2,boost (pool),829
|
|
Serialize integers-64.json,msvc x64/sse2,boost,819
|
|
Serialize integers-64.json,msvc x64/sse2,rapidjson (pool),807
|
|
Serialize integers-64.json,msvc x64/sse2,rapidjson,807
|
|
Serialize integers-64.json,msvc x64/sse2,nlohmann,608
|
|
Serialize twitter.json,msvc x64/sse2,boost (pool),1265
|
|
Serialize twitter.json,msvc x64/sse2,boost,1227
|
|
Serialize twitter.json,msvc x64/sse2,rapidjson (pool),721
|
|
Serialize twitter.json,msvc x64/sse2,rapidjson,791
|
|
Serialize twitter.json,msvc x64/sse2,nlohmann,299
|
|
Serialize small.json,msvc x64/sse2,boost (pool),1155
|
|
Serialize small.json,msvc x64/sse2,boost,1154
|
|
Serialize small.json,msvc x64/sse2,rapidjson (pool),645
|
|
Serialize small.json,msvc x64/sse2,rapidjson,663
|
|
Serialize small.json,msvc x64/sse2,nlohmann,253
|
|
Serialize array.json,msvc x64/sse2,boost (pool),460
|
|
Serialize array.json,msvc x64/sse2,boost,458
|
|
Serialize array.json,msvc x64/sse2,rapidjson (pool),335
|
|
Serialize array.json,msvc x64/sse2,rapidjson,352
|
|
Serialize array.json,msvc x64/sse2,nlohmann,240
|
|
Serialize random.json,msvc x64/sse2,boost (pool),906
|
|
Serialize random.json,msvc x64/sse2,boost,910
|
|
Serialize random.json,msvc x64/sse2,rapidjson (pool),521
|
|
Serialize random.json,msvc x64/sse2,rapidjson,533
|
|
Serialize random.json,msvc x64/sse2,nlohmann,278
|
|
Serialize citm_catalog.json,msvc x64/sse2,boost (pool),1773
|
|
Serialize citm_catalog.json,msvc x64/sse2,boost,1727
|
|
Serialize citm_catalog.json,msvc x64/sse2,rapidjson (pool),1482
|
|
Serialize citm_catalog.json,msvc x64/sse2,rapidjson,1504
|
|
Serialize citm_catalog.json,msvc x64/sse2,nlohmann,858
|
|
Serialize canada.json,msvc x64/sse2,boost (pool),371
|
|
Serialize canada.json,msvc x64/sse2,boost,351
|
|
Serialize canada.json,msvc x64/sse2,rapidjson (pool),254
|
|
Serialize canada.json,msvc x64/sse2,rapidjson,246
|
|
Serialize canada.json,msvc x64/sse2,nlohmann,104
|
|
|
|
Parse strings.json,clang x86/sse2,boost (pool),3019
|
|
Parse strings.json,clang x86/sse2,boost,2886
|
|
Parse strings.json,clang x86/sse2,rapidjson (pool),475
|
|
Parse strings.json,clang x86/sse2,rapidjson,441
|
|
Parse strings.json,clang x86/sse2,nlohmann,225
|
|
Parse integers-32.json,clang x86/sse2,boost (pool),351
|
|
Parse integers-32.json,clang x86/sse2,boost,335
|
|
Parse integers-32.json,clang x86/sse2,rapidjson (pool),243
|
|
Parse integers-32.json,clang x86/sse2,rapidjson,233
|
|
Parse integers-32.json,clang x86/sse2,nlohmann,70
|
|
Parse integers-64.json,clang x86/sse2,boost (pool),434
|
|
Parse integers-64.json,clang x86/sse2,boost,418
|
|
Parse integers-64.json,clang x86/sse2,rapidjson (pool),293
|
|
Parse integers-64.json,clang x86/sse2,rapidjson,284
|
|
Parse integers-64.json,clang x86/sse2,nlohmann,78
|
|
Parse twitter.json,clang x86/sse2,boost (pool),440
|
|
Parse twitter.json,clang x86/sse2,boost,206
|
|
Parse twitter.json,clang x86/sse2,rapidjson (pool),407
|
|
Parse twitter.json,clang x86/sse2,rapidjson,245
|
|
Parse twitter.json,clang x86/sse2,nlohmann,82
|
|
Parse small.json,clang x86/sse2,boost (pool),265
|
|
Parse small.json,clang x86/sse2,boost,153
|
|
Parse small.json,clang x86/sse2,rapidjson (pool),275
|
|
Parse small.json,clang x86/sse2,rapidjson,260
|
|
Parse small.json,clang x86/sse2,nlohmann,60
|
|
Parse array.json,clang x86/sse2,boost (pool),238
|
|
Parse array.json,clang x86/sse2,boost,195
|
|
Parse array.json,clang x86/sse2,rapidjson (pool),190
|
|
Parse array.json,clang x86/sse2,rapidjson,184
|
|
Parse array.json,clang x86/sse2,nlohmann,62
|
|
Parse random.json,clang x86/sse2,boost (pool),324
|
|
Parse random.json,clang x86/sse2,boost,175
|
|
Parse random.json,clang x86/sse2,rapidjson (pool),367
|
|
Parse random.json,clang x86/sse2,rapidjson,358
|
|
Parse random.json,clang x86/sse2,nlohmann,59
|
|
Parse citm_catalog.json,clang x86/sse2,boost (pool),518
|
|
Parse citm_catalog.json,clang x86/sse2,boost,279
|
|
Parse citm_catalog.json,clang x86/sse2,rapidjson (pool),808
|
|
Parse citm_catalog.json,clang x86/sse2,rapidjson,490
|
|
Parse citm_catalog.json,clang x86/sse2,nlohmann,100
|
|
Parse canada.json,clang x86/sse2,boost (pool),276
|
|
Parse canada.json,clang x86/sse2,boost,185
|
|
Parse canada.json,clang x86/sse2,rapidjson (pool),345
|
|
Parse canada.json,clang x86/sse2,rapidjson,218
|
|
Parse canada.json,clang x86/sse2,nlohmann,29
|
|
Serialize strings.json,clang x86/sse2,boost (pool),7452
|
|
Serialize strings.json,clang x86/sse2,boost,6735
|
|
Serialize strings.json,clang x86/sse2,rapidjson (pool),6516
|
|
Serialize strings.json,clang x86/sse2,rapidjson,6155
|
|
Serialize strings.json,clang x86/sse2,nlohmann,167
|
|
Serialize integers-32.json,clang x86/sse2,boost (pool),370
|
|
Serialize integers-32.json,clang x86/sse2,boost,370
|
|
Serialize integers-32.json,clang x86/sse2,rapidjson (pool),445
|
|
Serialize integers-32.json,clang x86/sse2,rapidjson,445
|
|
Serialize integers-32.json,clang x86/sse2,nlohmann,176
|
|
Serialize integers-64.json,clang x86/sse2,boost (pool),335
|
|
Serialize integers-64.json,clang x86/sse2,boost,334
|
|
Serialize integers-64.json,clang x86/sse2,rapidjson (pool),336
|
|
Serialize integers-64.json,clang x86/sse2,rapidjson,336
|
|
Serialize integers-64.json,clang x86/sse2,nlohmann,167
|
|
Serialize twitter.json,clang x86/sse2,boost (pool),1157
|
|
Serialize twitter.json,clang x86/sse2,boost,1133
|
|
Serialize twitter.json,clang x86/sse2,rapidjson (pool),1019
|
|
Serialize twitter.json,clang x86/sse2,rapidjson,1007
|
|
Serialize twitter.json,clang x86/sse2,nlohmann,231
|
|
Serialize small.json,clang x86/sse2,boost (pool),1151
|
|
Serialize small.json,clang x86/sse2,boost,1146
|
|
Serialize small.json,clang x86/sse2,rapidjson (pool),829
|
|
Serialize small.json,clang x86/sse2,rapidjson,852
|
|
Serialize small.json,clang x86/sse2,nlohmann,201
|
|
Serialize array.json,clang x86/sse2,boost (pool),270
|
|
Serialize array.json,clang x86/sse2,boost,269
|
|
Serialize array.json,clang x86/sse2,rapidjson (pool),291
|
|
Serialize array.json,clang x86/sse2,rapidjson,287
|
|
Serialize array.json,clang x86/sse2,nlohmann,165
|
|
Serialize random.json,clang x86/sse2,boost (pool),608
|
|
Serialize random.json,clang x86/sse2,boost,609
|
|
Serialize random.json,clang x86/sse2,rapidjson (pool),543
|
|
Serialize random.json,clang x86/sse2,rapidjson,544
|
|
Serialize random.json,clang x86/sse2,nlohmann,221
|
|
Serialize citm_catalog.json,clang x86/sse2,boost (pool),1442
|
|
Serialize citm_catalog.json,clang x86/sse2,boost,1399
|
|
Serialize citm_catalog.json,clang x86/sse2,rapidjson (pool),1666
|
|
Serialize citm_catalog.json,clang x86/sse2,rapidjson,1647
|
|
Serialize citm_catalog.json,clang x86/sse2,nlohmann,510
|
|
Serialize canada.json,clang x86/sse2,boost (pool),128
|
|
Serialize canada.json,clang x86/sse2,boost,126
|
|
Serialize canada.json,clang x86/sse2,rapidjson (pool),152
|
|
Serialize canada.json,clang x86/sse2,rapidjson,148
|
|
Serialize canada.json,clang x86/sse2,nlohmann,74
|
|
|
|
Parse strings.json,msvc x86/sse2,boost (pool),2643
|
|
Parse strings.json,msvc x86/sse2,boost,2536
|
|
Parse strings.json,msvc x86/sse2,rapidjson (pool),393
|
|
Parse strings.json,msvc x86/sse2,rapidjson,372
|
|
Parse strings.json,msvc x86/sse2,nlohmann,189
|
|
Parse integers-32.json,msvc x86/sse2,boost (pool),338
|
|
Parse integers-32.json,msvc x86/sse2,boost,311
|
|
Parse integers-32.json,msvc x86/sse2,rapidjson (pool),216
|
|
Parse integers-32.json,msvc x86/sse2,rapidjson,209
|
|
Parse integers-32.json,msvc x86/sse2,nlohmann,65
|
|
Parse integers-64.json,msvc x86/sse2,boost (pool),432
|
|
Parse integers-64.json,msvc x86/sse2,boost,407
|
|
Parse integers-64.json,msvc x86/sse2,rapidjson (pool),277
|
|
Parse integers-64.json,msvc x86/sse2,rapidjson,271
|
|
Parse integers-64.json,msvc x86/sse2,nlohmann,70
|
|
Parse twitter.json,msvc x86/sse2,boost (pool),377
|
|
Parse twitter.json,msvc x86/sse2,boost,191
|
|
Parse twitter.json,msvc x86/sse2,rapidjson (pool),318
|
|
Parse twitter.json,msvc x86/sse2,rapidjson,221
|
|
Parse twitter.json,msvc x86/sse2,nlohmann,88
|
|
Parse small.json,msvc x86/sse2,boost (pool),235
|
|
Parse small.json,msvc x86/sse2,boost,140
|
|
Parse small.json,msvc x86/sse2,rapidjson (pool),241
|
|
Parse small.json,msvc x86/sse2,rapidjson,225
|
|
Parse small.json,msvc x86/sse2,nlohmann,63
|
|
Parse array.json,msvc x86/sse2,boost (pool),222
|
|
Parse array.json,msvc x86/sse2,boost,179
|
|
Parse array.json,msvc x86/sse2,rapidjson (pool),184
|
|
Parse array.json,msvc x86/sse2,rapidjson,179
|
|
Parse array.json,msvc x86/sse2,nlohmann,63
|
|
Parse random.json,msvc x86/sse2,boost (pool),259
|
|
Parse random.json,msvc x86/sse2,boost,155
|
|
Parse random.json,msvc x86/sse2,rapidjson (pool),278
|
|
Parse random.json,msvc x86/sse2,rapidjson,276
|
|
Parse random.json,msvc x86/sse2,nlohmann,63
|
|
Parse citm_catalog.json,msvc x86/sse2,boost (pool),435
|
|
Parse citm_catalog.json,msvc x86/sse2,boost,250
|
|
Parse citm_catalog.json,msvc x86/sse2,rapidjson (pool),705
|
|
Parse citm_catalog.json,msvc x86/sse2,rapidjson,415
|
|
Parse citm_catalog.json,msvc x86/sse2,nlohmann,106
|
|
Parse canada.json,msvc x86/sse2,boost (pool),251
|
|
Parse canada.json,msvc x86/sse2,boost,172
|
|
Parse canada.json,msvc x86/sse2,rapidjson (pool),242
|
|
Parse canada.json,msvc x86/sse2,rapidjson,172
|
|
Parse canada.json,msvc x86/sse2,nlohmann,29
|
|
Serialize strings.json,msvc x86/sse2,boost (pool),6209
|
|
Serialize strings.json,msvc x86/sse2,boost,5776
|
|
Serialize strings.json,msvc x86/sse2,rapidjson (pool),5877
|
|
Serialize strings.json,msvc x86/sse2,rapidjson,5566
|
|
Serialize strings.json,msvc x86/sse2,nlohmann,115
|
|
Serialize integers-32.json,msvc x86/sse2,boost (pool),430
|
|
Serialize integers-32.json,msvc x86/sse2,boost,428
|
|
Serialize integers-32.json,msvc x86/sse2,rapidjson (pool),543
|
|
Serialize integers-32.json,msvc x86/sse2,rapidjson,542
|
|
Serialize integers-32.json,msvc x86/sse2,nlohmann,198
|
|
Serialize integers-64.json,msvc x86/sse2,boost (pool),356
|
|
Serialize integers-64.json,msvc x86/sse2,boost,356
|
|
Serialize integers-64.json,msvc x86/sse2,rapidjson (pool),364
|
|
Serialize integers-64.json,msvc x86/sse2,rapidjson,364
|
|
Serialize integers-64.json,msvc x86/sse2,nlohmann,210
|
|
Serialize twitter.json,msvc x86/sse2,boost (pool),1134
|
|
Serialize twitter.json,msvc x86/sse2,boost,1109
|
|
Serialize twitter.json,msvc x86/sse2,rapidjson (pool),771
|
|
Serialize twitter.json,msvc x86/sse2,rapidjson,757
|
|
Serialize twitter.json,msvc x86/sse2,nlohmann,231
|
|
Serialize small.json,msvc x86/sse2,boost (pool),1048
|
|
Serialize small.json,msvc x86/sse2,boost,1059
|
|
Serialize small.json,msvc x86/sse2,rapidjson (pool),676
|
|
Serialize small.json,msvc x86/sse2,rapidjson,683
|
|
Serialize small.json,msvc x86/sse2,nlohmann,219
|
|
Serialize array.json,msvc x86/sse2,boost (pool),304
|
|
Serialize array.json,msvc x86/sse2,boost,302
|
|
Serialize array.json,msvc x86/sse2,rapidjson (pool),249
|
|
Serialize array.json,msvc x86/sse2,rapidjson,249
|
|
Serialize array.json,msvc x86/sse2,nlohmann,158
|
|
Serialize random.json,msvc x86/sse2,boost (pool),649
|
|
Serialize random.json,msvc x86/sse2,boost,643
|
|
Serialize random.json,msvc x86/sse2,rapidjson (pool),418
|
|
Serialize random.json,msvc x86/sse2,rapidjson,419
|
|
Serialize random.json,msvc x86/sse2,nlohmann,223
|
|
Serialize citm_catalog.json,msvc x86/sse2,boost (pool),1537
|
|
Serialize citm_catalog.json,msvc x86/sse2,boost,1482
|
|
Serialize citm_catalog.json,msvc x86/sse2,rapidjson (pool),1512
|
|
Serialize citm_catalog.json,msvc x86/sse2,rapidjson,1495
|
|
Serialize citm_catalog.json,msvc x86/sse2,nlohmann,592
|
|
Serialize canada.json,msvc x86/sse2,boost (pool),168
|
|
Serialize canada.json,msvc x86/sse2,boost,164
|
|
Serialize canada.json,msvc x86/sse2,rapidjson (pool),113
|
|
Serialize canada.json,msvc x86/sse2,rapidjson,111
|
|
Serialize canada.json,msvc x86/sse2,nlohmann,58
|
|
|
|
</textarea>
|
|
|
|
<script>
|
|
|
|
var Width = 600;
|
|
|
|
function autosize (f) {
|
|
if (f.scrollHeight > f.clientHeight) {
|
|
f.style.height = f.scrollHeight + "px";
|
|
}
|
|
}
|
|
|
|
// Draw a single bar chart representing
|
|
// results for one platform and architecture
|
|
function draw_chart(ctx, title, rows, mbsMax) {
|
|
var xMax = Math.max(...Object.values(rows));
|
|
|
|
// gray separator
|
|
ctx.beginPath();
|
|
ctx.strokeStyle = "#A0A0A0";
|
|
ctx.moveTo(0, 0.5);
|
|
ctx.lineTo(Width, 0.5);
|
|
ctx.stroke();
|
|
ctx.translate(0, 28);
|
|
|
|
// title
|
|
ctx.textAlign = "left";
|
|
ctx.fillStyle = "#000000";
|
|
ctx.font = 'bold 16px sans-serif';
|
|
ctx.fillText(title, 0, 0);
|
|
ctx.translate(0, 26);
|
|
|
|
// chart rows
|
|
Object.entries(rows).forEach(([name, mbs]) =>
|
|
{
|
|
var dy = 4;
|
|
|
|
ctx.textAlign = "left";
|
|
ctx.fillStyle = "#000000";
|
|
ctx.font = '14px sans-serif';
|
|
ctx.fillText(name, 0, 0);
|
|
|
|
var xMbs = 195;
|
|
if(name.startsWith("boost"))
|
|
ctx.fillStyle = "#eb342a";
|
|
else
|
|
ctx.fillStyle = "#909090";
|
|
var w = (Width - 170) * mbs / mbsMax
|
|
if(w < xMbs - 120)
|
|
w = xMbs - 120;
|
|
ctx.fillRect(130, -20+dy, w, 20);
|
|
|
|
ctx.textAlign = "right";
|
|
ctx.font = '13px sans-serif';
|
|
ctx.fillStyle = "#000000";
|
|
ctx.fillText(mbs + " MB/s", xMbs + 1, 1);
|
|
ctx.fillStyle = "#ffffff";
|
|
ctx.fillText(mbs + " MB/s", xMbs, 0);
|
|
|
|
ctx.translate(0, 24);
|
|
});
|
|
|
|
// gray separator
|
|
ctx.translate(0, -4);
|
|
ctx.beginPath();
|
|
ctx.strokeStyle = "#A0A0A0";
|
|
ctx.moveTo(0, 0.5);
|
|
ctx.lineTo(Width, 0.5);
|
|
ctx.stroke();
|
|
}
|
|
|
|
// Draw multiple bar charts, one
|
|
// for each platform and architecture
|
|
function draw_charts(ctx, tab, mbsMax) {
|
|
// top margin
|
|
ctx.translate(0, 16);
|
|
|
|
// draw each chart
|
|
Object.entries(tab).forEach(([name, rows]) =>
|
|
{
|
|
draw_chart(ctx, name, rows, mbsMax);
|
|
});
|
|
|
|
// bottom margin
|
|
ctx.translate(0, 16);
|
|
}
|
|
|
|
function measure_and_draw(canvas, tab) {
|
|
mbsMax = 0;
|
|
Object.entries(tab).forEach(([name, rows]) =>
|
|
{
|
|
mbsMax = Math.max(mbsMax, ...Object.values(rows));
|
|
});
|
|
|
|
var LeftMargin = 48;
|
|
|
|
// Measure the height needed
|
|
canvas.width = Width;
|
|
canvas.height = 30000;
|
|
var ctx = canvas.getContext("2d");
|
|
ctx.save();
|
|
draw_charts(ctx, tab);
|
|
var tx = ctx.getTransform();
|
|
var height = tx["f"];
|
|
|
|
// Resize the canvas to fit
|
|
canvas.width = LeftMargin + Width + 20;
|
|
canvas.height = height;
|
|
|
|
// Make everything opaque
|
|
ctx.fillStyle = "#FFFFFF";
|
|
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
ctx.translate(LeftMargin, 0);
|
|
draw_charts(ctx, tab, mbsMax);
|
|
ctx.restore();
|
|
}
|
|
|
|
function update()
|
|
{
|
|
var tab = new Object();
|
|
var lines = data.value.split('\n');
|
|
for (var i = 0; i < lines.length; i++)
|
|
{
|
|
if(lines[i].length == 0)
|
|
continue;
|
|
items = lines[i].split(',');
|
|
var title = items[0]
|
|
var target = items[1];
|
|
var name = items[2];
|
|
var mbs = items[3];
|
|
if(! (title in tab))
|
|
tab[title] = new Object();
|
|
if(! (target in tab[title]))
|
|
tab[title][target] = new Object();
|
|
var set = tab[title][target];
|
|
if(! (name in set))
|
|
set[name] = new Object();
|
|
set[name] = mbs;
|
|
}
|
|
|
|
benchmarks.innerHTML = "";
|
|
Object.entries(tab).forEach(([title, charts]) =>
|
|
{
|
|
benchmarks.innerHTML +=
|
|
"<h2>" + title + "</h2>" +
|
|
"<canvas id=\"" + title + "\" width=\"800\" height=\"600\">";
|
|
});
|
|
Object.entries(tab).forEach(([title, charts]) =>
|
|
{
|
|
measure_and_draw(document.getElementById(title), charts)
|
|
});
|
|
}
|
|
|
|
data.oninput = function()
|
|
{
|
|
update();
|
|
}
|
|
|
|
update();
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|