Blame view

3rdparty/boost_1_81_0/libs/json/bench/results.html 25.9 KB
73ef4ff3   Hu Chunming   提交三方库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
  <!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/boostorg/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 apache_builds.json,clang x64/sse2,boost (pool),740
  Parse apache_builds.json,clang x64/sse2,boost,290
  Parse apache_builds.json,clang x64/sse2,rapidjson (pool),564
  Parse apache_builds.json,clang x64/sse2,rapidjson,353
  Parse apache_builds.json,clang x64/sse2,nlohmann,130
  Parse canada.json,clang x64/sse2,boost (pool),642
  Parse canada.json,clang x64/sse2,boost,385
  Parse canada.json,clang x64/sse2,rapidjson (pool),506
  Parse canada.json,clang x64/sse2,rapidjson,303
  Parse canada.json,clang x64/sse2,nlohmann,55
  Parse citm_catalog.json,clang x64/sse2,boost (pool),1120
  Parse citm_catalog.json,clang x64/sse2,boost,476
  Parse citm_catalog.json,clang x64/sse2,rapidjson (pool),1200
  Parse citm_catalog.json,clang x64/sse2,rapidjson,698
  Parse citm_catalog.json,clang x64/sse2,nlohmann,140
  Parse github_events.json,clang x64/sse2,boost (pool),833
  Parse github_events.json,clang x64/sse2,boost,314
  Parse github_events.json,clang x64/sse2,rapidjson (pool),525
  Parse github_events.json,clang x64/sse2,rapidjson,349
  Parse github_events.json,clang x64/sse2,nlohmann,136
  Parse gsoc-2018.json,clang x64/sse2,boost (pool),879
  Parse gsoc-2018.json,clang x64/sse2,boost,595
  Parse gsoc-2018.json,clang x64/sse2,rapidjson (pool),596
  Parse gsoc-2018.json,clang x64/sse2,rapidjson,488
  Parse gsoc-2018.json,clang x64/sse2,nlohmann,261
  Parse instruments.json,clang x64/sse2,boost (pool),690
  Parse instruments.json,clang x64/sse2,boost,301
  Parse instruments.json,clang x64/sse2,rapidjson (pool),685
  Parse instruments.json,clang x64/sse2,rapidjson,451
  Parse instruments.json,clang x64/sse2,nlohmann,117
  Parse marine_ik.json,clang x64/sse2,boost (pool),476
  Parse marine_ik.json,clang x64/sse2,boost,314
  Parse marine_ik.json,clang x64/sse2,rapidjson (pool),500
  Parse marine_ik.json,clang x64/sse2,rapidjson,363
  Parse marine_ik.json,clang x64/sse2,nlohmann,56
  Parse mesh.json,clang x64/sse2,boost (pool),522
  Parse mesh.json,clang x64/sse2,boost,560
  Parse mesh.json,clang x64/sse2,rapidjson (pool),398
  Parse mesh.json,clang x64/sse2,rapidjson,347
  Parse mesh.json,clang x64/sse2,nlohmann,59
  Parse mesh.pretty.json,clang x64/sse2,boost (pool),1033
  Parse mesh.pretty.json,clang x64/sse2,boost,1195
  Parse mesh.pretty.json,clang x64/sse2,rapidjson (pool),820
  Parse mesh.pretty.json,clang x64/sse2,rapidjson,723
  Parse mesh.pretty.json,clang x64/sse2,nlohmann,115
  Parse numbers.json,clang x64/sse2,boost (pool),1105
  Parse numbers.json,clang x64/sse2,boost,1042
  Parse numbers.json,clang x64/sse2,rapidjson (pool),497
  Parse numbers.json,clang x64/sse2,rapidjson,472
  Parse numbers.json,clang x64/sse2,nlohmann,63
  Parse random.json,clang x64/sse2,boost (pool),375
  Parse random.json,clang x64/sse2,boost,180
  Parse random.json,clang x64/sse2,rapidjson (pool),438
  Parse random.json,clang x64/sse2,rapidjson,290
  Parse random.json,clang x64/sse2,nlohmann,86
  Parse twitter.json,clang x64/sse2,boost (pool),682
  Parse twitter.json,clang x64/sse2,boost,329
  Parse twitter.json,clang x64/sse2,rapidjson (pool),603
  Parse twitter.json,clang x64/sse2,rapidjson,406
  Parse twitter.json,clang x64/sse2,nlohmann,137
  Parse twitterescaped.json,clang x64/sse2,boost (pool),567
  Parse twitterescaped.json,clang x64/sse2,boost,280
  Parse twitterescaped.json,clang x64/sse2,rapidjson (pool),398
  Parse twitterescaped.json,clang x64/sse2,rapidjson,287
  Parse twitterescaped.json,clang x64/sse2,nlohmann,120
  Parse update-center.json,clang x64/sse2,boost (pool),530
  Parse update-center.json,clang x64/sse2,boost,233
  Parse update-center.json,clang x64/sse2,rapidjson (pool),426
  Parse update-center.json,clang x64/sse2,rapidjson,277
  Parse update-center.json,clang x64/sse2,nlohmann,105
  Serialize apache_builds.json,clang x64/sse2,boost (pool),1659
  Serialize apache_builds.json,clang x64/sse2,boost,1480
  Serialize apache_builds.json,clang x64/sse2,rapidjson (pool),1431
  Serialize apache_builds.json,clang x64/sse2,rapidjson,1528
  Serialize apache_builds.json,clang x64/sse2,nlohmann,407
  Serialize canada.json,clang x64/sse2,boost (pool),578
  Serialize canada.json,clang x64/sse2,boost,561
  Serialize canada.json,clang x64/sse2,rapidjson (pool),313
  Serialize canada.json,clang x64/sse2,rapidjson,309
  Serialize canada.json,clang x64/sse2,nlohmann,178
  Serialize citm_catalog.json,clang x64/sse2,boost (pool),3039
  Serialize citm_catalog.json,clang x64/sse2,boost,2882
  Serialize citm_catalog.json,clang x64/sse2,rapidjson (pool),2200
  Serialize citm_catalog.json,clang x64/sse2,rapidjson,2210
  Serialize citm_catalog.json,clang x64/sse2,nlohmann,1151
  Serialize github_events.json,clang x64/sse2,boost (pool),1529
  Serialize github_events.json,clang x64/sse2,boost,1559
  Serialize github_events.json,clang x64/sse2,rapidjson (pool),1500
  Serialize github_events.json,clang x64/sse2,rapidjson,1680
  Serialize github_events.json,clang x64/sse2,nlohmann,368
  Serialize gsoc-2018.json,clang x64/sse2,boost (pool),2347
  Serialize gsoc-2018.json,clang x64/sse2,boost,2243
  Serialize gsoc-2018.json,clang x64/sse2,rapidjson (pool),2895
  Serialize gsoc-2018.json,clang x64/sse2,rapidjson,3066
  Serialize gsoc-2018.json,clang x64/sse2,nlohmann,241
  Serialize instruments.json,clang x64/sse2,boost (pool),2183
  Serialize instruments.json,clang x64/sse2,boost,1905
  Serialize instruments.json,clang x64/sse2,rapidjson (pool),1350
  Serialize instruments.json,clang x64/sse2,rapidjson,1430
  Serialize instruments.json,clang x64/sse2,nlohmann,587
  Serialize marine_ik.json,clang x64/sse2,boost (pool),469
  Serialize marine_ik.json,clang x64/sse2,boost,454
  Serialize marine_ik.json,clang x64/sse2,rapidjson (pool),452
  Serialize marine_ik.json,clang x64/sse2,rapidjson,445
  Serialize marine_ik.json,clang x64/sse2,nlohmann,229
  Serialize mesh.json,clang x64/sse2,boost (pool),476
  Serialize mesh.json,clang x64/sse2,boost,475
  Serialize mesh.json,clang x64/sse2,rapidjson (pool),367
  Serialize mesh.json,clang x64/sse2,rapidjson,366
  Serialize mesh.json,clang x64/sse2,nlohmann,275
  Serialize mesh.pretty.json,clang x64/sse2,boost (pool),1082
  Serialize mesh.pretty.json,clang x64/sse2,boost,1081
  Serialize mesh.pretty.json,clang x64/sse2,rapidjson (pool),840
  Serialize mesh.pretty.json,clang x64/sse2,rapidjson,835
  Serialize mesh.pretty.json,clang x64/sse2,nlohmann,623
  Serialize numbers.json,clang x64/sse2,boost (pool),415
  Serialize numbers.json,clang x64/sse2,boost,415
  Serialize numbers.json,clang x64/sse2,rapidjson (pool),300
  Serialize numbers.json,clang x64/sse2,rapidjson,297
  Serialize numbers.json,clang x64/sse2,nlohmann,216
  Serialize random.json,clang x64/sse2,boost (pool),1290
  Serialize random.json,clang x64/sse2,boost,1173
  Serialize random.json,clang x64/sse2,rapidjson (pool),838
  Serialize random.json,clang x64/sse2,rapidjson,892
  Serialize random.json,clang x64/sse2,nlohmann,338
  Serialize twitter.json,clang x64/sse2,boost (pool),2271
  Serialize twitter.json,clang x64/sse2,boost,1622
  Serialize twitter.json,clang x64/sse2,rapidjson (pool),1364
  Serialize twitter.json,clang x64/sse2,rapidjson,1527
  Serialize twitter.json,clang x64/sse2,nlohmann,424
  Serialize twitterescaped.json,clang x64/sse2,boost (pool),1961
  Serialize twitterescaped.json,clang x64/sse2,boost,1388
  Serialize twitterescaped.json,clang x64/sse2,rapidjson (pool),1184
  Serialize twitterescaped.json,clang x64/sse2,rapidjson,1325
  Serialize twitterescaped.json,clang x64/sse2,nlohmann,368
  Serialize update-center.json,clang x64/sse2,boost (pool),1015
  Serialize update-center.json,clang x64/sse2,boost,963
  Serialize update-center.json,clang x64/sse2,rapidjson (pool),924
  Serialize update-center.json,clang x64/sse2,rapidjson,1007
  Serialize update-center.json,clang x64/sse2,nlohmann,270
  
  Parse apache_builds.json,gcc x64/sse2,boost (pool),706
  Parse apache_builds.json,gcc x64/sse2,boost,290
  Parse apache_builds.json,gcc x64/sse2,rapidjson (pool),547
  Parse apache_builds.json,gcc x64/sse2,rapidjson,356
  Parse apache_builds.json,gcc x64/sse2,nlohmann,118
  Parse canada.json,gcc x64/sse2,boost (pool),675
  Parse canada.json,gcc x64/sse2,boost,395
  Parse canada.json,gcc x64/sse2,rapidjson (pool),641
  Parse canada.json,gcc x64/sse2,rapidjson,372
  Parse canada.json,gcc x64/sse2,nlohmann,26
  Parse citm_catalog.json,gcc x64/sse2,boost (pool),1096
  Parse citm_catalog.json,gcc x64/sse2,boost,503
  Parse citm_catalog.json,gcc x64/sse2,rapidjson (pool),1279
  Parse citm_catalog.json,gcc x64/sse2,rapidjson,812
  Parse citm_catalog.json,gcc x64/sse2,nlohmann,143
  Parse github_events.json,gcc x64/sse2,boost (pool),767
  Parse github_events.json,gcc x64/sse2,boost,327
  Parse github_events.json,gcc x64/sse2,rapidjson (pool),551
  Parse github_events.json,gcc x64/sse2,rapidjson,379
  Parse github_events.json,gcc x64/sse2,nlohmann,121
  Parse gsoc-2018.json,gcc x64/sse2,boost (pool),892
  Parse gsoc-2018.json,gcc x64/sse2,boost,645
  Parse gsoc-2018.json,gcc x64/sse2,rapidjson (pool),620
  Parse gsoc-2018.json,gcc x64/sse2,rapidjson,523
  Parse gsoc-2018.json,gcc x64/sse2,nlohmann,197
  Parse instruments.json,gcc x64/sse2,boost (pool),608
  Parse instruments.json,gcc x64/sse2,boost,296
  Parse instruments.json,gcc x64/sse2,rapidjson (pool),723
  Parse instruments.json,gcc x64/sse2,rapidjson,473
  Parse instruments.json,gcc x64/sse2,nlohmann,112
  Parse marine_ik.json,gcc x64/sse2,boost (pool),505
  Parse marine_ik.json,gcc x64/sse2,boost,321
  Parse marine_ik.json,gcc x64/sse2,rapidjson (pool),583
  Parse marine_ik.json,gcc x64/sse2,rapidjson,411
  Parse marine_ik.json,gcc x64/sse2,nlohmann,35
  Parse mesh.json,gcc x64/sse2,boost (pool),551
  Parse mesh.json,gcc x64/sse2,boost,518
  Parse mesh.json,gcc x64/sse2,rapidjson (pool),491
  Parse mesh.json,gcc x64/sse2,rapidjson,422
  Parse mesh.json,gcc x64/sse2,nlohmann,32
  Parse mesh.pretty.json,gcc x64/sse2,boost (pool),1091
  Parse mesh.pretty.json,gcc x64/sse2,boost,1096
  Parse mesh.pretty.json,gcc x64/sse2,rapidjson (pool),1023
  Parse mesh.pretty.json,gcc x64/sse2,rapidjson,887
  Parse mesh.pretty.json,gcc x64/sse2,nlohmann,61
  Parse numbers.json,gcc x64/sse2,boost (pool),1088
  Parse numbers.json,gcc x64/sse2,boost,968
  Parse numbers.json,gcc x64/sse2,rapidjson (pool),633
  Parse numbers.json,gcc x64/sse2,rapidjson,596
  Parse numbers.json,gcc x64/sse2,nlohmann,25
  Parse random.json,gcc x64/sse2,boost (pool),346
  Parse random.json,gcc x64/sse2,boost,175
  Parse random.json,gcc x64/sse2,rapidjson (pool),449
  Parse random.json,gcc x64/sse2,rapidjson,308
  Parse random.json,gcc x64/sse2,nlohmann,85
  Parse twitter.json,gcc x64/sse2,boost (pool),597
  Parse twitter.json,gcc x64/sse2,boost,308
  Parse twitter.json,gcc x64/sse2,rapidjson (pool),630
  Parse twitter.json,gcc x64/sse2,rapidjson,423
  Parse twitter.json,gcc x64/sse2,nlohmann,123
  Parse twitterescaped.json,gcc x64/sse2,boost (pool),533
  Parse twitterescaped.json,gcc x64/sse2,boost,270
  Parse twitterescaped.json,gcc x64/sse2,rapidjson (pool),475
  Parse twitterescaped.json,gcc x64/sse2,rapidjson,333
  Parse twitterescaped.json,gcc x64/sse2,nlohmann,108
  Parse update-center.json,gcc x64/sse2,boost (pool),509
  Parse update-center.json,gcc x64/sse2,boost,231
  Parse update-center.json,gcc x64/sse2,rapidjson (pool),418
  Parse update-center.json,gcc x64/sse2,rapidjson,282
  Parse update-center.json,gcc x64/sse2,nlohmann,95
  Serialize apache_builds.json,gcc x64/sse2,boost (pool),2102
  Serialize apache_builds.json,gcc x64/sse2,boost,2029
  Serialize apache_builds.json,gcc x64/sse2,rapidjson (pool),1424
  Serialize apache_builds.json,gcc x64/sse2,rapidjson,1526
  Serialize apache_builds.json,gcc x64/sse2,nlohmann,448
  Serialize canada.json,gcc x64/sse2,boost (pool),563
  Serialize canada.json,gcc x64/sse2,boost,541
  Serialize canada.json,gcc x64/sse2,rapidjson (pool),335
  Serialize canada.json,gcc x64/sse2,rapidjson,327
  Serialize canada.json,gcc x64/sse2,nlohmann,156
  Serialize citm_catalog.json,gcc x64/sse2,boost (pool),3474
  Serialize citm_catalog.json,gcc x64/sse2,boost,3263
  Serialize citm_catalog.json,gcc x64/sse2,rapidjson (pool),2453
  Serialize citm_catalog.json,gcc x64/sse2,rapidjson,2469
  Serialize citm_catalog.json,gcc x64/sse2,nlohmann,1204
  Serialize github_events.json,gcc x64/sse2,boost (pool),2091
  Serialize github_events.json,gcc x64/sse2,boost,2069
  Serialize github_events.json,gcc x64/sse2,rapidjson (pool),1475
  Serialize github_events.json,gcc x64/sse2,rapidjson,1658
  Serialize github_events.json,gcc x64/sse2,nlohmann,413
  Serialize gsoc-2018.json,gcc x64/sse2,boost (pool),2048
  Serialize gsoc-2018.json,gcc x64/sse2,boost,1991
  Serialize gsoc-2018.json,gcc x64/sse2,rapidjson (pool),2901
  Serialize gsoc-2018.json,gcc x64/sse2,rapidjson,3073
  Serialize gsoc-2018.json,gcc x64/sse2,nlohmann,365
  Serialize instruments.json,gcc x64/sse2,boost (pool),2381
  Serialize instruments.json,gcc x64/sse2,boost,2319
  Serialize instruments.json,gcc x64/sse2,rapidjson (pool),1453
  Serialize instruments.json,gcc x64/sse2,rapidjson,1514
  Serialize instruments.json,gcc x64/sse2,nlohmann,613
  Serialize marine_ik.json,gcc x64/sse2,boost (pool),469
  Serialize marine_ik.json,gcc x64/sse2,boost,455
  Serialize marine_ik.json,gcc x64/sse2,rapidjson (pool),504
  Serialize marine_ik.json,gcc x64/sse2,rapidjson,494
  Serialize marine_ik.json,gcc x64/sse2,nlohmann,235
  Serialize mesh.json,gcc x64/sse2,boost (pool),476
  Serialize mesh.json,gcc x64/sse2,boost,466
  Serialize mesh.json,gcc x64/sse2,rapidjson (pool),415
  Serialize mesh.json,gcc x64/sse2,rapidjson,413
  Serialize mesh.json,gcc x64/sse2,nlohmann,278
  Serialize mesh.pretty.json,gcc x64/sse2,boost (pool),1081
  Serialize mesh.pretty.json,gcc x64/sse2,boost,1056
  Serialize mesh.pretty.json,gcc x64/sse2,rapidjson (pool),950
  Serialize mesh.pretty.json,gcc x64/sse2,rapidjson,945
  Serialize mesh.pretty.json,gcc x64/sse2,nlohmann,624
  Serialize numbers.json,gcc x64/sse2,boost (pool),418
  Serialize numbers.json,gcc x64/sse2,boost,417
  Serialize numbers.json,gcc x64/sse2,rapidjson (pool),322
  Serialize numbers.json,gcc x64/sse2,rapidjson,321
  Serialize numbers.json,gcc x64/sse2,nlohmann,240
  Serialize random.json,gcc x64/sse2,boost (pool),1464
  Serialize random.json,gcc x64/sse2,boost,1420
  Serialize random.json,gcc x64/sse2,rapidjson (pool),850
  Serialize random.json,gcc x64/sse2,rapidjson,922
  Serialize random.json,gcc x64/sse2,nlohmann,351
  Serialize twitter.json,gcc x64/sse2,boost (pool),2367
  Serialize twitter.json,gcc x64/sse2,boost,2281
  Serialize twitter.json,gcc x64/sse2,rapidjson (pool),1244
  Serialize twitter.json,gcc x64/sse2,rapidjson,1401
  Serialize twitter.json,gcc x64/sse2,nlohmann,447
  Serialize twitterescaped.json,gcc x64/sse2,boost (pool),2053
  Serialize twitterescaped.json,gcc x64/sse2,boost,1985
  Serialize twitterescaped.json,gcc x64/sse2,rapidjson (pool),1077
  Serialize twitterescaped.json,gcc x64/sse2,rapidjson,1216
  Serialize twitterescaped.json,gcc x64/sse2,nlohmann,388
  Serialize update-center.json,gcc x64/sse2,boost (pool),1350
  Serialize update-center.json,gcc x64/sse2,boost,1298
  Serialize update-center.json,gcc x64/sse2,rapidjson (pool),901
  Serialize update-center.json,gcc x64/sse2,rapidjson,975
  Serialize update-center.json,gcc x64/sse2,nlohmann,299
  
  Parse apache_builds.json,msvc x64/sse2,boost (pool),616
  Parse apache_builds.json,msvc x64/sse2,boost,277
  Parse apache_builds.json,msvc x64/sse2,rapidjson (pool),385
  Parse apache_builds.json,msvc x64/sse2,rapidjson,270
  Parse apache_builds.json,msvc x64/sse2,nlohmann,121
  Parse canada.json,msvc x64/sse2,boost (pool),637
  Parse canada.json,msvc x64/sse2,boost,369
  Parse canada.json,msvc x64/sse2,rapidjson (pool),490
  Parse canada.json,msvc x64/sse2,rapidjson,312
  Parse canada.json,msvc x64/sse2,nlohmann,52
  Parse citm_catalog.json,msvc x64/sse2,boost (pool),999
  Parse citm_catalog.json,msvc x64/sse2,boost,477
  Parse citm_catalog.json,msvc x64/sse2,rapidjson (pool),978
  Parse citm_catalog.json,msvc x64/sse2,rapidjson,659
  Parse citm_catalog.json,msvc x64/sse2,nlohmann,148
  Parse github_events.json,msvc x64/sse2,boost (pool),713
  Parse github_events.json,msvc x64/sse2,boost,318
  Parse github_events.json,msvc x64/sse2,rapidjson (pool),356
  Parse github_events.json,msvc x64/sse2,rapidjson,278
  Parse github_events.json,msvc x64/sse2,nlohmann,134
  Parse gsoc-2018.json,msvc x64/sse2,boost (pool),881
  Parse gsoc-2018.json,msvc x64/sse2,boost,628
  Parse gsoc-2018.json,msvc x64/sse2,rapidjson (pool),375
  Parse gsoc-2018.json,msvc x64/sse2,rapidjson,336
  Parse gsoc-2018.json,msvc x64/sse2,nlohmann,243
  Parse instruments.json,msvc x64/sse2,boost (pool),562
  Parse instruments.json,msvc x64/sse2,boost,286
  Parse instruments.json,msvc x64/sse2,rapidjson (pool),481
  Parse instruments.json,msvc x64/sse2,rapidjson,349
  Parse instruments.json,msvc x64/sse2,nlohmann,112
  Parse marine_ik.json,msvc x64/sse2,boost (pool),448
  Parse marine_ik.json,msvc x64/sse2,boost,298
  Parse marine_ik.json,msvc x64/sse2,rapidjson (pool),482
  Parse marine_ik.json,msvc x64/sse2,rapidjson,350
  Parse marine_ik.json,msvc x64/sse2,nlohmann,56
  Parse mesh.json,msvc x64/sse2,boost (pool),536
  Parse mesh.json,msvc x64/sse2,boost,535
  Parse mesh.json,msvc x64/sse2,rapidjson (pool),400
  Parse mesh.json,msvc x64/sse2,rapidjson,347
  Parse mesh.json,msvc x64/sse2,nlohmann,57
  Parse mesh.pretty.json,msvc x64/sse2,boost (pool),1057
  Parse mesh.pretty.json,msvc x64/sse2,boost,1132
  Parse mesh.pretty.json,msvc x64/sse2,rapidjson (pool),813
  Parse mesh.pretty.json,msvc x64/sse2,rapidjson,717
  Parse mesh.pretty.json,msvc x64/sse2,nlohmann,112
  Parse numbers.json,msvc x64/sse2,boost (pool),981
  Parse numbers.json,msvc x64/sse2,boost,895
  Parse numbers.json,msvc x64/sse2,rapidjson (pool),465
  Parse numbers.json,msvc x64/sse2,rapidjson,443
  Parse numbers.json,msvc x64/sse2,nlohmann,62
  Parse random.json,msvc x64/sse2,boost (pool),324
  Parse random.json,msvc x64/sse2,boost,171
  Parse random.json,msvc x64/sse2,rapidjson (pool),297
  Parse random.json,msvc x64/sse2,rapidjson,222
  Parse random.json,msvc x64/sse2,nlohmann,82
  Parse twitter.json,msvc x64/sse2,boost (pool),548
  Parse twitter.json,msvc x64/sse2,boost,307
  Parse twitter.json,msvc x64/sse2,rapidjson (pool),394
  Parse twitter.json,msvc x64/sse2,rapidjson,299
  Parse twitter.json,msvc x64/sse2,nlohmann,130
  Parse twitterescaped.json,msvc x64/sse2,boost (pool),467
  Parse twitterescaped.json,msvc x64/sse2,boost,264
  Parse twitterescaped.json,msvc x64/sse2,rapidjson (pool),284
  Parse twitterescaped.json,msvc x64/sse2,rapidjson,222
  Parse twitterescaped.json,msvc x64/sse2,nlohmann,112
  Parse update-center.json,msvc x64/sse2,boost (pool),446
  Parse update-center.json,msvc x64/sse2,boost,223
  Parse update-center.json,msvc x64/sse2,rapidjson (pool),278
  Parse update-center.json,msvc x64/sse2,rapidjson,206
  Parse update-center.json,msvc x64/sse2,nlohmann,99
  Serialize apache_builds.json,msvc x64/sse2,boost (pool),1446
  Serialize apache_builds.json,msvc x64/sse2,boost,1389
  Serialize apache_builds.json,msvc x64/sse2,rapidjson (pool),1286
  Serialize apache_builds.json,msvc x64/sse2,rapidjson,1368
  Serialize apache_builds.json,msvc x64/sse2,nlohmann,346
  Serialize canada.json,msvc x64/sse2,boost (pool),473
  Serialize canada.json,msvc x64/sse2,boost,460
  Serialize canada.json,msvc x64/sse2,rapidjson (pool),305
  Serialize canada.json,msvc x64/sse2,rapidjson,300
  Serialize canada.json,msvc x64/sse2,nlohmann,141
  Serialize citm_catalog.json,msvc x64/sse2,boost (pool),2182
  Serialize citm_catalog.json,msvc x64/sse2,boost,2128
  Serialize citm_catalog.json,msvc x64/sse2,rapidjson (pool),2116
  Serialize citm_catalog.json,msvc x64/sse2,rapidjson,2135
  Serialize citm_catalog.json,msvc x64/sse2,nlohmann,1142
  Serialize github_events.json,msvc x64/sse2,boost (pool),1541
  Serialize github_events.json,msvc x64/sse2,boost,1501
  Serialize github_events.json,msvc x64/sse2,rapidjson (pool),1336
  Serialize github_events.json,msvc x64/sse2,rapidjson,1459
  Serialize github_events.json,msvc x64/sse2,nlohmann,291
  Serialize gsoc-2018.json,msvc x64/sse2,boost (pool),1726
  Serialize gsoc-2018.json,msvc x64/sse2,boost,1666
  Serialize gsoc-2018.json,msvc x64/sse2,rapidjson (pool),2679
  Serialize gsoc-2018.json,msvc x64/sse2,rapidjson,2821
  Serialize gsoc-2018.json,msvc x64/sse2,nlohmann,206
  Serialize instruments.json,msvc x64/sse2,boost (pool),1442
  Serialize instruments.json,msvc x64/sse2,boost,1409
  Serialize instruments.json,msvc x64/sse2,rapidjson (pool),1239
  Serialize instruments.json,msvc x64/sse2,rapidjson,1317
  Serialize instruments.json,msvc x64/sse2,nlohmann,550
  Serialize marine_ik.json,msvc x64/sse2,boost (pool),397
  Serialize marine_ik.json,msvc x64/sse2,boost,385
  Serialize marine_ik.json,msvc x64/sse2,rapidjson (pool),425
  Serialize marine_ik.json,msvc x64/sse2,rapidjson,419
  Serialize marine_ik.json,msvc x64/sse2,nlohmann,179
  Serialize mesh.json,msvc x64/sse2,boost (pool),401
  Serialize mesh.json,msvc x64/sse2,boost,401
  Serialize mesh.json,msvc x64/sse2,rapidjson (pool),342
  Serialize mesh.json,msvc x64/sse2,rapidjson,341
  Serialize mesh.json,msvc x64/sse2,nlohmann,212
  Serialize mesh.pretty.json,msvc x64/sse2,boost (pool),918
  Serialize mesh.pretty.json,msvc x64/sse2,boost,918
  Serialize mesh.pretty.json,msvc x64/sse2,rapidjson (pool),782
  Serialize mesh.pretty.json,msvc x64/sse2,rapidjson,779
  Serialize mesh.pretty.json,msvc x64/sse2,nlohmann,481
  Serialize numbers.json,msvc x64/sse2,boost (pool),359
  Serialize numbers.json,msvc x64/sse2,boost,353
  Serialize numbers.json,msvc x64/sse2,rapidjson (pool),268
  Serialize numbers.json,msvc x64/sse2,rapidjson,268
  Serialize numbers.json,msvc x64/sse2,nlohmann,165
  Serialize random.json,msvc x64/sse2,boost (pool),887
  Serialize random.json,msvc x64/sse2,boost,865
  Serialize random.json,msvc x64/sse2,rapidjson (pool),761
  Serialize random.json,msvc x64/sse2,rapidjson,813
  Serialize random.json,msvc x64/sse2,nlohmann,308
  Serialize twitter.json,msvc x64/sse2,boost (pool),1612
  Serialize twitter.json,msvc x64/sse2,boost,1556
  Serialize twitter.json,msvc x64/sse2,rapidjson (pool),1217
  Serialize twitter.json,msvc x64/sse2,rapidjson,1341
  Serialize twitter.json,msvc x64/sse2,nlohmann,393
  Serialize twitterescaped.json,msvc x64/sse2,boost (pool),1400
  Serialize twitterescaped.json,msvc x64/sse2,boost,1351
  Serialize twitterescaped.json,msvc x64/sse2,rapidjson (pool),1057
  Serialize twitterescaped.json,msvc x64/sse2,rapidjson,1163
  Serialize twitterescaped.json,msvc x64/sse2,nlohmann,341
  Serialize update-center.json,msvc x64/sse2,boost (pool),969
  Serialize update-center.json,msvc x64/sse2,boost,941
  Serialize update-center.json,msvc x64/sse2,rapidjson (pool),795
  Serialize update-center.json,msvc x64/sse2,rapidjson,864
  Serialize update-center.json,msvc x64/sse2,nlohmann,224
  
  
  </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>