forked from WebKit/WebKit-http
/
ChangeLog
2591 lines (1830 loc) · 112 KB
/
ChangeLog
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
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2012-08-02 Arnaud Renevier <a.renevier@sisa.samsung.com>
TypedArray set method is slow when called with another typed array
https://bugs.webkit.org/show_bug.cgi?id=92556
Reviewed by Kenneth Russell.
* Bindings/typed-array-set-from-typed.html: Added.
2012-07-28 Ryosuke Niwa <rniwa@webkit.org>
run-perf-tests should generate a results page
https://bugs.webkit.org/show_bug.cgi?id=92575
Reviewed by Eric Seidel.
Add a results page template. This page includes flot and flot.fillbetween.
jQuery and the json that contains test results are injected by run-perf-tests.
* resources/results-template.html: Added.
2012-07-27 Arnaud Renevier <a.renevier@sisa.samsung.com>
use createUninitialized when creating TypedArray from another array
https://bugs.webkit.org/show_bug.cgi?id=92518
Reviewed by Kenneth Russell.
* Bindings/typed-array-construct-from-array.html: Added.
2012-07-27 Ryosuke Niwa <rniwa@webkit.org>
Add more Russian replay performance tests
https://bugs.webkit.org/show_bug.cgi?id=92462
Reviewed by Tony Chang.
Add more Russian sites as suggested by loislo.
* Replay/Russian/lenta.ru.replay: Added.
* Replay/Russian/www.ixbt.com.replay: Added.
* Replay/Russian/www.kp.ru.replay: Added.
* Replay/Russian/www.liveinternet.ru.replay: Added.
* Replay/Russian/www.pravda.ru.replay: Added.
2012-07-26 Arnaud Renevier <a.renevier@sisa.samsung.com>
constructing TypedArray from another TypedArray is slow
https://bugs.webkit.org/show_bug.cgi?id=90838
Reviewed by Kenneth Russell.
* Bindings/typed-array-construct-from-same-type.html: Added.
* Bindings/typed-array-construct-from-typed.html: Added.
2012-07-25 Ryosuke Niwa <rniwa@webkit.org>
Import more replay performance tests from Mozilla's Tp5 test suite
https://bugs.webkit.org/show_bug.cgi?id=92229
Reviewed by Andreas Kling.
Add more replay tests based on Mozilla's Tp5 test suite [1]. Unfortunately,
we cannot import all URLs because some of them are not archived on archive.org
and others do not replay well on web-page-replay. Nonethless, we're still adding
60+ URLs in this patch.
[1] http://people.mozilla.org/~jmaher/tp5.manifest
* Replay/Chinese: Added.
* Replay/Chinese/chinaz.com.replay: Added.
* Replay/Chinese/www.163.com.replay: Added.
* Replay/Chinese/www.alipay.com.replay: Added.
* Replay/Chinese/www.baidu.com.replay: Added.
* Replay/Chinese/www.csdn.net.replay: Added.
* Replay/Chinese/www.douban.com.replay: Added.
* Replay/Chinese/www.hao123.com.replay: Added.
* Replay/Chinese/www.xinhuanet.com.replay: Added.
* Replay/Chinese/www.xunlei.com.replay: Added.
* Replay/Chinese/www.youku.com.replay: Added.
* Replay/English: Added.
* Replay/English/beatonna.livejournal.com.replay: Added.
* Replay/English/cakewrecks.blogspot.com.replay: Added.
* Replay/English/chemistry.about.com.replay: Added.
* Replay/English/digg.com.replay: Added.
* Replay/English/en.wikipedia.org-rorschach_test.replay: Added.
* Replay/English/icanhascheezburger.com.replay: Added.
* Replay/English/imgur.com-gallery.replay: Added.
* Replay/English/online.wsj.com.replay: Added.
* Replay/English/stockoverflow.com-best-comment.replay: Added.
* Replay/English/www.alibaba.com.replay: Added.
* Replay/English/www.amazon.com-kindle.replay: Added.
* Replay/English/www.apple.com.replay: Added.
* Replay/English/www.cnet.com.replay: Added.
* Replay/English/www.dailymotion.com.replay: Added.
* Replay/English/www.ehow.com-prevent-fire.replay: Added.
* Replay/English/www.filestube.com-amy-adams.replay: Added.
* Replay/English/www.foxnews.replay: Added.
* Replay/English/www.huffingtonpost.com.replay: Added.
* Replay/English/www.imdb.com-twilight.replay: Added.
* Replay/English/www.mozilla.com-all-order.replay: Added.
* Replay/English/www.php.net.replay: Added.
* Replay/English/www.reddit.com.replay: Added.
* Replay/English/www.telegraph.co.uk.replay: Added.
* Replay/English/www.w3.org-htmlcss.replay: Added.
* Replay/English/www.w3schools.com-html.replay: Added.
* Replay/English/www.youtube.com-music.replay: Added.
* Replay/French: Added.
* Replay/French/www.orange.fr.replay: Added.
* Replay/German: Added.
* Replay/Italian: Added.
* Replay/Italian/www.repubblica.it.replay: Added.
* Replay/Japanese/entameblog.seesaa.net.replay: Added.
* Replay/Japanese/www.hatena.ne.jp.replay: Added.
* Replay/Japanese/www.nicovideo.jp.replay: Added.
* Replay/Korean: Added.
* Replay/Korean/www.naver.com.replay: Added.
* Replay/Persian: Added.
* Replay/Persian/blogfa.com.replay: Added.
* Replay/Polish: Added.
* Replay/Polish/www.wp.pl.replay: Added.
* Replay/Portuguese: Added.
* Replay/Portuguese/www.uol.com.br.replay: Added.
* Replay/Russian: Added.
* Replay/Russian/vkontakte.ru-help.replay: Added.
* Replay/Russian/www.rambler.ru.replay: Added.
* Replay/Russian/www.ucoz.ru.replay: Added.
* Replay/Russian/www.yandex.ru.replay: Added.
* Replay/Spanish: Added.
* Replay/Spanish/www.taringa.net.replay: Added.
2012-07-24 Ryosuke Niwa <rniwa@webkit.org>
Add some Japanese and Swedish websites to replay tests
https://bugs.webkit.org/show_bug.cgi?id=92076
Reviewed by Andreas Kling.
Added new replay tests as follows.
* Replay/Japanese: Added.
* Replay/Japanese/2ch.net-newsplus.replay: Added.
* Replay/Japanese/ja.wikipedia.org.replay: Added.
* Replay/Japanese/www.livedoor.com.replay: Added.
* Replay/Japanese/www.rakuten.co.jp.replay: Added.
* Replay/Japanese/www.yahoo.co.jp.replay: Added.
* Replay/Swedish: Added.
* Replay/Swedish/www.flashback.se.replay: Added.
* Replay/Swedish/www.tradera.com.replay: Added.
* Replay/www.techcrunch.com.replay: Added.
2012-07-18 MORITA Hajime <morrita@google.com>
Add window resize benchmark
https://bugs.webkit.org/show_bug.cgi?id=91070
Reviewed by Ryosuke Niwa.
Added window-resize.html which exercise html5.html. This test
resizes the window and forces re-layout repeatedly.
* Interactive/resources/window-resize.js: Added.
* Interactive/window-resize.html: Added.
* Parser/resources/html5.html: Modified to inject driver scripts.
2012-07-11 Philip Rogers <pdr@google.com>
Add a performance test for hit testing in SVG
https://bugs.webkit.org/show_bug.cgi?id=90811
Reviewed by Ryosuke Niwa.
The shape rendering code is changing a lot and I'd like a performance test to
make sure we don't regress, and to track our improvements.
Performance results in my Linux desktop:
RESULT SVG: SvgHitTesting= 105.0 ms
median= 103.5 ms, stdev= 4.60434577329 ms, min= 101.0 ms, max= 116.0 ms
RESULT SVG: SvgHitTesting= 97.8 ms
median= 96.5 ms, stdev= 2.67581763205 ms, min= 95.0 ms, max= 102.0 ms
RESULT SVG: SvgHitTesting= 104.3 ms
median= 104.0 ms, stdev= 1.41774468788 ms, min= 102.0 ms, max= 107.0 ms
RESULT SVG: SvgHitTesting= 103.6 ms
median= 103.5 ms, stdev= 1.2 ms, min= 102.0 ms, max= 106.0 ms
* SVG/SvgHitTesting.html: Added.
2012-07-03 Jan Keromnes <janx@linux.com>
Web Inspector: WebInspector.TextViewer should be renamed WebInspector.TextEditor
https://bugs.webkit.org/show_bug.cgi?id=89939
Reviewed by Vsevolod Vlasov.
* inspector/first-open-scripts.html.broken:
2012-06-22 Philip Rogers <pdr@google.com>
Make SvgCubics performance test more consistent
https://bugs.webkit.org/show_bug.cgi?id=89778
Reviewed by Ryosuke Niwa.
Previously this test ran twice for each iteration, but this led to inconsistent repaints.
This change updates the test to only run once per iteration, and adds even more cubics
so that the test runs consistently in the 80ms range on my Linux desktop.
Performance results on my desktop:
RESULT SVG: SvgCubics= 80.5 ms
median= 82.0 ms, stdev= 3.04138126515 ms, min= 75.0 ms, max= 85.0 ms
RESULT SVG: SvgCubics= 80.1 ms
median= 81.0 ms, stdev= 4.27668095607 ms, min= 74.0 ms, max= 88.0 ms
RESULT SVG: SvgCubics= 81.45 ms
median= 83.0 ms, stdev= 4.01839520207 ms, min= 75.0 ms, max= 89.0 ms
RESULT SVG: SvgCubics= 78.9 ms
median= 80.0 ms, stdev= 4.75289385533 ms, min= 72.0 ms, max= 87.0 ms
* SVG/SvgCubics.html:
2012-06-22 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: partially instrument DOM Tree native memory.
https://bugs.webkit.org/show_bug.cgi?id=89568
This patch adds MemoryInstrumentation class that counts all visited
objects and calls reportMemoryUsage.
Reviewed by Yury Semikhatsky.
* inspector/native-memory-snapshot.html:
2012-06-21 Kentaro Hara <haraken@chromium.org>
Add a perf-test for innerHTML setter for a large DOM tree
https://bugs.webkit.org/show_bug.cgi?id=89723
Reviewed by Ryosuke Niwa.
We want a benchmark for innerHTML setter for the following reason:
- innerHTML setter is widely used in the real world.
- I am planning to optimize innerHTML setter in the near future.
- I want to use the innerHTML setter benchmark for the patch of bug 88834.
Performance results in my Linux desktop:
RESULT Parser: innerHTML-setter= 289.782649995 runs/s
median= 290.046269741 runs/s, stdev= 1.06575112224 runs/s, min= 286.831812256 runs/s, max= 291.005291005 runs/s
RESULT Parser: innerHTML-setter= 289.020706132 runs/s
median= 289.093298292 runs/s, stdev= 0.985203313093 runs/s, min= 286.831812256 runs/s, max= 290.620871863 runs/s
RESULT Parser: innerHTML-setter= 288.912051701 runs/s
median= 291.005291005 runs/s, stdev= 3.65241325588 runs/s, min= 283.505154639 runs/s, max= 292.553191489 runs/s
RESULT Parser: innerHTML-setter= 288.644186666 runs/s
median= 288.713910761 runs/s, stdev= 1.31889053717 runs/s, min= 286.085825748 runs/s, max= 290.620871863 runs/s
RESULT Parser: innerHTML-setter= 288.698714577 runs/s
median= 288.713910761 runs/s, stdev= 1.03938198202 runs/s, min= 286.458333333 runs/s, max= 290.237467018 runs/s
* Parser/innerHTML-setter.html: Added.
2012-06-20 Philip Rogers <pdr@google.com>
Add a performance test for paths in SVG
https://bugs.webkit.org/show_bug.cgi?id=89547
Reviewed by Ryosuke Niwa.
This change adds the first performance test for SVG paths.
In the test we modify complex cubic paths in several ways, testing:
transformations, clipping, d attribute changes, stroke properties,
text on a path, and opacity.
Sample test results on my Linux desktop:
RESULT SVG: SvgCubics= 68.85 ms
median= 69.5 ms, stdev= 4.70398767005 ms, min= 56.0 ms, max= 75.0 ms
RESULT SVG: SvgCubics= 68.4 ms
median= 69.0 ms, stdev= 3.51283361405 ms, min= 59.0 ms, max= 74.0 ms
RESULT SVG: SvgCubics= 66.95 ms
median= 67.0 ms, stdev= 3.4420197559 ms, min= 59.0 ms, max= 74.0 ms
RESULT SVG: SvgCubics= 70.2 ms
median= 71.5 ms, stdev= 3.23419232576 ms, min= 63.0 ms, max= 74.0 ms
* SVG: Added.
* SVG/SvgCubics.html: Added.
2012-06-20 Tom Zakrajsek <tomz@codeaurora.org>
Import themaninblue.com/experiment/AnimationBenchmark/ as performance tests
https://bugs.webkit.org/show_bug.cgi?id=78789
Reviewed by Ryosuke Niwa.
Added PerfTestRunner fixture around it.
* Animation/balls.html: Added.
2012-06-18 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: native memory snapshot performance and coverage test implementation.
https://bugs.webkit.org/show_bug.cgi?id=89363
We have to track the performance of MemoryAgent.getProcessMemoryDistribution.
Also this test will work as a burn down chart for Unknown memory metric.
Reviewed by Pavel Feldman.
* inspector/native-memory-snapshot.html: Added.
* inspector/performance-test.js:
(initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer):
(initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.reportSize):
(initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._dump):
(initialize_TimeTracker.InspectorTest.runPerformanceTest):
2012-06-05 Alexei Filippov <alexeif@chromium.org>
Web Inspector: serialize edge counts instead of indexes in heap snapshot
https://bugs.webkit.org/show_bug.cgi?id=88324
The serialized node structure currently holds an index
of its first containment edge in the edges array.
The index can be quite big (up to 7 digits for large snapshots).
The patch changes the serialization format to pass
node containment edge count instead. For most nodes the count
is just a single digit number.
This reduces serialized snapshot size and therefore its transfer time.
Reviewed by Yury Semikhatsky.
* inspector/heap-snapshot-performance-test.js:
2012-06-04 Alexei Filippov <alexeif@chromium.org>
Web Inspector: speed up _calculateRetainedSizes function
https://bugs.webkit.org/show_bug.cgi?id=87863
Reviewed by Yury Semikhatsky.
* inspector/heap-snapshot-advanced.html: Added.
* inspector/heap-snapshot-performance-test.js: Copied from PerformanceTests/inspector/heap-snapshot.html.
(test.performanceTest.step0):
(test.performanceTest.step1):
(test.performanceTest.step2):
(test.performanceTest.cleanup):
(test.performanceTest.done):
(test.performanceTest):
(test):
* inspector/heap-snapshot.html:
2012-06-03 Kentaro Hara <haraken@chromium.org>
[perf-test] Add a benchmark of querySelector() for an element that appears in the depths in the document
https://bugs.webkit.org/show_bug.cgi?id=88202
Reviewed by Ryosuke Niwa.
query-selector-first.html tests querySelector() for an element
that appears at the head of the document. query-selector-last.html
tests querySelector() for an element that appears at the tail of
the document. In addition, we want a benchmark of querySelector()
for an element that appears in the depths in the document.
Test results in my Linux desktop:
RESULT Parser: query-selector-deep= 460.776980611 runs/s
median= 460.947503201 runs/s, stdev= 1.72274941942 runs/s, min= 455.696202532 runs/s, max= 463.32046332 runs/s
RESULT Parser: query-selector-deep= 458.925050915 runs/s
median= 459.183673469 runs/s, stdev= 1.47930124139 runs/s, min= 454.545454545 runs/s, max= 460.947503201 runs/s
RESULT Parser: query-selector-deep= 461.866981491 runs/s
median= 461.538461538 runs/s, stdev= 1.14613123359 runs/s, min= 459.183673469 runs/s, max= 463.917525773 runs/s
RESULT Parser: query-selector-deep= 453.922010788 runs/s
median= 454.258855898 runs/s, stdev= 1.77279123317 runs/s, min= 447.204968944 runs/s, max= 455.696202532 runs/s
RESULT Parser: query-selector-deep= 454.666321221 runs/s
median= 454.545454545 runs/s, stdev= 1.65775667417 runs/s, min= 451.127819549 runs/s, max= 456.852791878 runs/s
* Parser/query-selector-deep.html: Added.
2012-06-03 Kentaro Hara <haraken@chromium.org>
[perf-test] Make query-selector-last.html more realistic
https://bugs.webkit.org/show_bug.cgi?id=88203
Reviewed by Ryosuke Niwa.
query-selector-last.html tests querySelector() for an element
that appears after 1000 div elements, all of which have the same
id and class. To test the performance of querySelector() under
a lot of ids and classes, we should make the ids and classes of
the 1000 elements different.
This patch degrades the performance of query-selector-last.html
by 3.6%.
[Before]
RESULT Parser: query-selector-last= 476.382274152 runs/s
median= 476.821192053 runs/s, stdev= 1.14578875814 runs/s, min= 474.308300395 runs/s, max= 478.087649402 runs/s
RESULT Parser: query-selector-last= 478.423061861 runs/s
median= 478.723404255 runs/s, stdev= 1.54876867255 runs/s, min= 473.684210526 runs/s, max= 481.347773767 runs/s
RESULT Parser: query-selector-last= 479.849287174 runs/s
median= 480.0 runs/s, stdev= 1.69849752498 runs/s, min= 475.561426684 runs/s, max= 481.927710843 runs/s
RESULT Parser: query-selector-last= 476.765438846 runs/s
median= 477.453580902 runs/s, stdev= 1.8724488664 runs/s, min= 471.821756225 runs/s, max= 478.723404255 runs/s
RESULT Parser: query-selector-last= 481.715340644 runs/s
median= 481.637742305 runs/s, stdev= 1.81446361145 runs/s, min= 475.561426684 runs/s, max= 483.675937122 runs/s
[After]
RESULT Parser: query-selector-last= 458.866623582 runs/s
median= 459.183673469 runs/s, stdev= 1.48881464737 runs/s, min= 453.972257251 runs/s, max= 460.947503201 runs/s
RESULT Parser: query-selector-last= 460.363532897 runs/s
median= 460.358056266 runs/s, stdev= 1.58512056995 runs/s, min= 456.273764259 runs/s, max= 462.130937099 runs/s
RESULT Parser: query-selector-last= 457.727448451 runs/s
median= 458.015267176 runs/s, stdev= 1.23681915516 runs/s, min= 453.972257251 runs/s, max= 459.183673469 runs/s
RESULT Parser: query-selector-last= 465.57336853 runs/s
median= 465.717981889 runs/s, stdev= 1.6616925374 runs/s, min= 460.947503201 runs/s, max= 467.532467532 runs/s
RESULT Parser: query-selector-last= 459.836252019 runs/s
median= 459.770114943 runs/s, stdev= 1.84485630505 runs/s, min= 455.696202532 runs/s, max= 462.724935733 runs/s
* Parser/query-selector-last.html:
2012-06-01 Ryosuke Niwa <rniwa@webkit.org>
Add public page loading performance tests using web-page-replay
https://bugs.webkit.org/show_bug.cgi?id=84008
Reviewed by Dirk Pranke.
Add replay tests for google.com and youtube.com as examples.
* Replay: Added.
* Replay/www.google.com.replay: Added.
* Replay/www.youtube.com.replay: Added.
2012-05-30 Kentaro Hara <haraken@chromium.org>
[perf-test] Add a benchmark for querySelector()
https://bugs.webkit.org/show_bug.cgi?id=87742
Reviewed by Ryosuke Niwa.
Now I am optimizing querySelector() (bug 87625).
This patch adds a performance test for querySelector().
query-selector-first.html queries an element that appears
at the head of the document. On the other hand,
query-selector-last.html queries an element that appears
at the tail of the document.
Test results in my desktop:
[query-selector-first.html]
RESULT Parser: query-selector-first= 252.339803014 runs/s
median= 253.646265594 runs/s, stdev= 2.32610873209 runs/s, min= 248.138957816 runs/s, max= 254.777070064 runs/s
RESULT Parser: query-selector-first= 252.688468897 runs/s
median= 252.684876579 runs/s, stdev= 3.60008778708 runs/s, min= 246.002460025 runs/s, max= 258.397932817 runs/s
RESULT Parser: query-selector-first= 253.466019656 runs/s
median= 254.129606099 runs/s, stdev= 1.78002675664 runs/s, min= 247.831474597 runs/s, max= 254.777070064 runs/s
RESULT Parser: query-selector-first= 256.245078189 runs/s
median= 257.06940874 runs/s, stdev= 2.84722072201 runs/s, min= 249.687890137 runs/s, max= 259.74025974 runs/s
RESULT Parser: query-selector-first= 252.203100497 runs/s
median= 252.047989175 runs/s, stdev= 1.75233446036 runs/s, min= 248.138957816 runs/s, max= 255.427841635 runs/s
[query-selector-last.html]
RESULT Parser: query-selector-last= 356.009616076 runs/s
median= 355.781448539 runs/s, stdev= 0.841519086864 runs/s, min= 354.430379747 runs/s, max= 358.056265985 runs/s
RESULT Parser: query-selector-last= 360.735271001 runs/s
median= 361.057532424 runs/s, stdev= 1.12253219867 runs/s, min= 358.514724712 runs/s, max= 362.225097025 runs/s
RESULT Parser: query-selector-last= 359.598592463 runs/s
median= 359.435173299 runs/s, stdev= 0.816538258728 runs/s, min= 358.056265985 runs/s, max= 360.824742268 runs/s
RESULT Parser: query-selector-last= 357.260651715 runs/s
median= 357.598978289 runs/s, stdev= 1.17393159885 runs/s, min= 353.982300885 runs/s, max= 358.974358974 runs/s
RESULT Parser: query-selector-last= 351.696240713 runs/s
median= 351.980025916 runs/s, stdev= 1.14200564038 runs/s, min= 348.692403487 runs/s, max= 353.535353535 runs/s
* Parser/query-selector-first.html: Added.
* Parser/query-selector-last.html: Added.
2012-05-25 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: HeapSnapshot: introduce performance counter for HeapSnapshotConstructorsDataGrid._aggregatesReceived method.
https://bugs.webkit.org/show_bug.cgi?id=87393
Reviewed by Yury Semikhatsky.
* inspector/heap-snapshot.html:
2012-05-25 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: HeapProfiler's perf test: each N-th run pushes the run results N-th times.
https://bugs.webkit.org/show_bug.cgi?id=87476
The time tracking wrappers were attaching on each run.
Reviewed by Yury Semikhatsky.
* inspector/heap-snapshot.html:
2012-05-22 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: HeapProfiler: upstream retainedSize calculation.
https://bugs.webkit.org/show_bug.cgi?id=87107
This patch upstreams V8::HeapSnapshotGenerator::CalculateRetainedSizes function to front-end.
After that we will be able to drop retainedSize field from the snapshot serialized data.
See meta-bug https://bugs.webkit.org/show_bug.cgi?id=87089
Reviewed by Yury Semikhatsky.
* inspector/heap-snapshot.html: add counter for the _calculateRetainedSize method.
2012-05-21 Kent Tamura <tkent@chromium.org>
Add performance tests for <textarea>
https://bugs.webkit.org/show_bug.cgi?id=86994
Reviewed by Ryosuke Niwa.
* DOM/textarea-dom.html: Added.
* DOM/textarea-edit.html: Added.
* Parser/textarea-parsing.html: Added.
2012-05-18 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: upstream build dominators tree procedure from v8.
https://bugs.webkit.org/show_bug.cgi?id=86640
The idea is to reduce transfer size and move all the post-processing steps to the front-end.
The JS implementation is ~1.5 times slower.
Reviewed by Yury Semikhatsky.
Covered by existing tests and performance tests.
* inspector/heap-snapshot.html:
2012-05-18 Kentaro Hara <haraken@chromium.org>
[perf-test] Remove Bindings/dom-attributes.html
https://bugs.webkit.org/show_bug.cgi?id=86820
Reviewed by Ryosuke Niwa.
Bindings/dom-attributes.html is just a collection of random
DOM attributes and methods. Now we've added more reasonable
micro benchmarks by classifying DOM binding call paths, we
can remove Bindings/dom-attributes.html.
* Bindings/dom-attributes.html: Removed.
2012-05-18 Kentaro Hara <haraken@chromium.org>
[perf-test] Add a binding benchmark for getElementById() for an undefined id
https://bugs.webkit.org/show_bug.cgi?id=86812
Reviewed by Ryosuke Niwa.
We should remove Bindings/dom-attributes.html and instead add more
reasonable micro benchmarks by classifying DOM binding call paths.
This patch adds a benchmark for document.getElementById() for an undefined id.
This benchmark covers 'getElementById (not in document)' in Dromaeo/dom-query.html,
and other Node-query methods that return a null.'
(Note: This benchmark is slower than document.getElementById() for a defined id.
We will fix the performance issue soon.)
Test results in my Linux desktop:
RESULT Bindings: undefined-get-element-by-id= 271.945751345 runs/s
median= 273.122389532 runs/s, stdev= 6.78219237299 runs/s, min= 257.4002574 runs/s, max= 281.690140845 runs/s
RESULT Bindings: undefined-get-element-by-id= 269.105872408 runs/s
median= 268.948655257 runs/s, stdev= 5.73707323755 runs/s, min= 257.4002574 runs/s, max= 278.128950695 runs/s
RESULT Bindings: undefined-get-element-by-id= 269.987513372 runs/s
median= 272.952853598 runs/s, stdev= 5.30252336078 runs/s, min= 255.754475703 runs/s, max= 273.97260274 runs/s
RESULT Bindings: undefined-get-element-by-id= 270.169625901 runs/s
median= 271.604938272 runs/s, stdev= 5.29502391906 runs/s, min= 258.064516129 runs/s, max= 278.481012658 runs/s
RESULT Bindings: undefined-get-element-by-id= 269.054631422 runs/s
median= 267.966292802 runs/s, stdev= 6.27197240579 runs/s, min= 258.064516129 runs/s, max= 278.481012658 runs/s
* Bindings/undefined-get-element-by-id.html: Added.
2012-05-18 Kentaro Hara <haraken@chromium.org>
[perf-test] Add a binding benchmark for getElementsByTagName()
https://bugs.webkit.org/show_bug.cgi?id=86810
Reviewed by Ryosuke Niwa.
We should remove Bindings/dom-attributes.html and instead add more
reasonable micro benchmarks by classifying DOM binding call paths.
This patch adds a benchmark for document.getElementsByTagName().
This benchmark covers 'getElementsByTagName (not in document)',
'getElementsByTagName', 'getElementsByName (not in document)'
and 'getElementsByName' in Dromaeo/dom-query.html, and other DOM
methods that return a NodeList.
Test results in my Linux desktop:
RESULT Bindings: get-elements-by-tag-name= 364.542328875 runs/s
median= 366.972477064 runs/s, stdev= 5.25387955333 runs/s, min= 351.317440402 runs/s, max= 368.421052632 runs/s
RESULT Bindings: get-elements-by-tag-name= 364.341569369 runs/s
median= 366.492146597 runs/s, stdev= 4.867374197 runs/s, min= 352.644836272 runs/s, max= 367.936925099 runs/s
RESULT Bindings: get-elements-by-tag-name= 363.924242967 runs/s
median= 366.013071895 runs/s, stdev= 5.16768212289 runs/s, min= 351.317440402 runs/s, max= 367.936925099 runs/s
RESULT Bindings: get-elements-by-tag-name= 365.332594438 runs/s
median= 367.454068241 runs/s, stdev= 6.17046918572 runs/s, min= 350.0 runs/s, max= 370.37037037 runs/s
RESULT Bindings: get-elements-by-tag-name= 363.999514324 runs/s
median= 366.492146597 runs/s, stdev= 5.31235674905 runs/s, min= 350.877192982 runs/s, max= 368.421052632 runs/s
* Bindings/get-elements-by-tag-name.html: Added.
2012-05-18 Kentaro Hara <haraken@chromium.org>
[perf-test] Add 7 micro benchmarks for DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=86816
Reviewed by Ryosuke Niwa.
We should remove Bindings/dom-attributes.html and instead add more
reasonable micro benchmarks by classifying DOM binding call paths.
This patch adds seven micro benchmarks for DOM bindings.
id-getter.html covers 'element.property' in Dromaeo/dom-attr.html,
'innerHTML' in Dromaeo/dom-modify.html, and other DOM attributes that
return a String.
id-setter.html covers 'element.property = value' in Dromaeo/dom-attr.html,
and other DOM attributes that sets a String.
undefined-id-getter.html covers undefined DOM attributes that return an empty String.
append-child.html covers 'appendChild' and 'removeChild' in Dromaeo/dom-modify.html.
insert-before.html covers 'insertBefore' in Dromaeo/dom-modify.html and replaceChild().
create-element.html covers 'createElement', 'createTextNode' and 'cloneNode'
in Dromaeo/dom-modify.html, and other DOM methods that return a new Node object.
node-list-access.html covers 'childNodes' in Dromaeo/dom-traverse.html,
and other DOM attributes that access NodeList.
Test results in my Linux desktop:
[id-getter]
RESULT Bindings: id-getter= 550.517821097 runs/s
median= 550.688360451 runs/s, stdev= 0.970723739106 runs/s, min= 548.628428928 runs/s, max= 552.070263488 runs/s
RESULT Bindings: id-getter= 550.655839847 runs/s
median= 550.688360451 runs/s, stdev= 1.03312821884 runs/s, min= 549.313358302 runs/s, max= 552.070263488 runs/s
RESULT Bindings: id-getter= 550.277753355 runs/s
median= 550.344180225 runs/s, stdev= 1.19960683464 runs/s, min= 547.945205479 runs/s, max= 552.070263488 runs/s
RESULT Bindings: id-getter= 550.072271009 runs/s
median= 550.344180225 runs/s, stdev= 1.38925152131 runs/s, min= 547.263681592 runs/s, max= 552.070263488 runs/s
RESULT Bindings: id-getter= 548.802050235 runs/s
median= 548.628428928 runs/s, stdev= 1.18244513683 runs/s, min= 545.905707196 runs/s, max= 550.688360451 runs/s
[id-setter]
RESULT Bindings: id-setter= 211.370591663 runs/s
median= 210.803689065 runs/s, stdev= 1.4555795889 runs/s, min= 209.973753281 runs/s, max= 214.285714286 runs/s
RESULT Bindings: id-setter= 215.439081352 runs/s
median= 214.797136038 runs/s, stdev= 1.50920388121 runs/s, min= 213.049267643 runs/s, max= 218.446601942 runs/s
RESULT Bindings: id-setter= 216.721698466 runs/s
median= 215.956886352 runs/s, stdev= 1.54090749644 runs/s, min= 214.285714286 runs/s, max= 219.78021978 runs/s
RESULT Bindings: id-setter= 216.343019087 runs/s
median= 215.827338129 runs/s, stdev= 1.46619894553 runs/s, min= 215.053763441 runs/s, max= 218.97810219 runs/s
RESULT Bindings: id-setter= 216.799288017 runs/s
median= 215.956886352 runs/s, stdev= 1.49100776978 runs/s, min= 215.311004785 runs/s, max= 219.78021978 runs/s
[undefined-id-getter]
RESULT Bindings: undefined-id-getter= 494.104255241 runs/s
median= 494.132368875 runs/s, stdev= 1.13092821109 runs/s, min= 490.797546012 runs/s, max= 495.662949195 runs/s
RESULT Bindings: undefined-id-getter= 493.921802916 runs/s
median= 493.827160494 runs/s, stdev= 1.25097443119 runs/s, min= 490.196078431 runs/s, max= 495.662949195 runs/s
RESULT Bindings: undefined-id-getter= 491.976485667 runs/s
median= 492.004920049 runs/s, stdev= 0.947090576896 runs/s, min= 490.196078431 runs/s, max= 493.827160494 runs/s
RESULT Bindings: undefined-id-getter= 491.987710185 runs/s
median= 494.132368875 runs/s, stdev= 8.66602543327 runs/s, min= 454.545454545 runs/s, max= 495.662949195 runs/s
RESULT Bindings: undefined-id-getter= 494.195515847 runs/s
median= 494.437577256 runs/s, stdev= 1.06135681702 runs/s, min= 490.797546012 runs/s, max= 495.662949195 runs/s
[append-child]
RESULT Bindings: append-child= 260.628237026 runs/s
median= 260.926399352 runs/s, stdev= 2.55231060598 runs/s, min= 256.739409499 runs/s, max= 265.604249668 runs/s
RESULT Bindings: append-child= 280.796193436 runs/s
median= 280.791435348 runs/s, stdev= 2.53961321867 runs/s, min= 277.427490542 runs/s, max= 286.085825748 runs/s
RESULT Bindings: append-child= 279.856209714 runs/s
median= 280.25477707 runs/s, stdev= 2.85447647301 runs/s, min= 275.344180225 runs/s, max= 284.237726098 runs/s
RESULT Bindings: append-child= 280.834502714 runs/s
median= 280.25477707 runs/s, stdev= 2.67738046429 runs/s, min= 277.427490542 runs/s, max= 287.206266319 runs/s
RESULT Bindings: append-child= 274.723872106 runs/s
median= 273.291925466 runs/s, stdev= 3.03671746706 runs/s, min= 272.614622057 runs/s, max= 282.413350449 runs/s
[insert-before]
RESULT Bindings: insert-before= 180.986913006 runs/s
median= 180.878552972 runs/s, stdev= 0.758038687299 runs/s, min= 180.18018018 runs/s, max= 183.968462549 runs/s
RESULT Bindings: insert-before= 186.339916144 runs/s
median= 186.170212766 runs/s, stdev= 0.869022097127 runs/s, min= 185.676392573 runs/s, max= 189.798339265 runs/s
RESULT Bindings: insert-before= 189.45344838 runs/s
median= 189.349112426 runs/s, stdev= 0.811854866567 runs/s, min= 187.79342723 runs/s, max= 192.539109507 runs/s
RESULT Bindings: insert-before= 189.363295991 runs/s
median= 189.349112426 runs/s, stdev= 0.75387713097 runs/s, min= 188.014101058 runs/s, max= 192.076830732 runs/s
RESULT Bindings: insert-before= 189.252041642 runs/s
median= 189.349112426 runs/s, stdev= 0.840447225363 runs/s, min= 187.573270809 runs/s, max= 192.076830732 runs/s
[create-element]
RESULT Bindings: create-element= 280.675830077 runs/s
median= 280.701824914 runs/s, stdev= 0.788606343054 runs/s, min= 279.441117764 runs/s, max= 282.542885974 runs/s
RESULT Bindings: create-element= 276.427631436 runs/s
median= 277.227722772 runs/s, stdev= 3.39874667549 runs/s, min= 262.417994377 runs/s, max= 279.162512463 runs/s
RESULT Bindings: create-element= 277.156894411 runs/s
median= 277.227722772 runs/s, stdev= 1.13255119226 runs/s, min= 274.914089347 runs/s, max= 278.884462151 runs/s
RESULT Bindings: create-element= 278.066825356 runs/s
median= 278.191822254 runs/s, stdev= 0.686497782792 runs/s, min= 276.953511375 runs/s, max= 279.162512463 runs/s
RESULT Bindings: create-element= 276.431538109 runs/s
median= 276.406712734 runs/s, stdev= 0.759593662298 runs/s, min= 275.229357798 runs/s, max= 278.053624628 runs/s
[node-list-access]
RESULT Bindings: node-list-access= 222.747504073 runs/s
median= 222.772277228 runs/s, stdev= 0.789027527555 runs/s, min= 221.674876847 runs/s, max= 224.159402242 runs/s
RESULT Bindings: node-list-access= 220.722448287 runs/s
median= 221.266217576 runs/s, stdev= 1.65463497875 runs/s, min= 217.391304348 runs/s, max= 222.222222222 runs/s
RESULT Bindings: node-list-access= 222.195870443 runs/s
median= 222.222222222 runs/s, stdev= 0.489709262091 runs/s, min= 221.13022113 runs/s, max= 223.048327138 runs/s
RESULT Bindings: node-list-access= 221.431121677 runs/s
median= 221.538545435 runs/s, stdev= 0.608292116087 runs/s, min= 220.048899756 runs/s, max= 222.772277228 runs/s
RESULT Bindings: node-list-access= 219.001367135 runs/s
median= 221.538545435 runs/s, stdev= 4.65773933007 runs/s, min= 209.973753281 runs/s, max= 222.496909765 runs/s
* Bindings/append-child.html: Added.
* Bindings/create-element.html: Added.
* Bindings/id-getter.html: Added.
* Bindings/id-setter.html: Added.
* Bindings/insert-before.html: Added.
* Bindings/node-list-access.html: Added.
* Bindings/undefined-id-getter.html: Added.
2012-05-18 Kentaro Hara <haraken@chromium.org>
[perf-test] Add a binding benchmark for div.setAttribute()
https://bugs.webkit.org/show_bug.cgi?id=86815
Reviewed by Ryosuke Niwa.
We should remove Bindings/dom-attributes.html and instead add more
reasonable micro benchmarks by classifying DOM binding call paths.
This patch adds a benchmark for div.setAttribute(). This benchmark
covers 'setAttribute' in Dromaeo/dom-attr.html and other DOM methods
that return an undefined.
Test results in my Linux desktop:
RESULT Bindings: set-attribute= 793.745073252 runs/s
median= 791.589665765 runs/s, stdev= 6.00467159709 runs/s, min= 785.27607362 runs/s, max= 808.080808081 runs/s
RESULT Bindings: set-attribute= 790.858444164 runs/s
median= 787.918921436 runs/s, stdev= 7.86264953655 runs/s, min= 780.234070221 runs/s, max= 806.04534005 runs/s
RESULT Bindings: set-attribute= 787.277571417 runs/s
median= 784.31372549 runs/s, stdev= 7.45363346657 runs/s, min= 778.588807786 runs/s, max= 804.020100503 runs/s
RESULT Bindings: set-attribute= 782.401393791 runs/s
median= 779.062978802 runs/s, stdev= 6.48250081621 runs/s, min= 777.642770352 runs/s, max= 796.019900498 runs/s
RESULT Bindings: set-attribute= 791.792516608 runs/s
median= 791.556728232 runs/s, stdev= 6.49182980397 runs/s, min= 779.220779221 runs/s, max= 808.080808081 runs/s
* Bindings/set-attribute.html: Added.
2012-05-17 Kentaro Hara <haraken@chromium.org>
[perf-test] Add a binding benchmark for div.getAttribute()
https://bugs.webkit.org/show_bug.cgi?id=86814
Reviewed by Ryosuke Niwa.
We should remove Bindings/dom-attributes.html and instead add more
reasonable micro benchmarks by classifying DOM binding call paths.
This patch adds a benchmark for div.getAttribute(). This benchmark
covers 'getAttribute' in Dromaeo/dom-attr.html, and other DOM methods
that return a String.
Test results in my Linux desktop:
RESULT Bindings: get-attribute= 250.088158538 runs/s
median= 250.469728765 runs/s, stdev= 4.66551901315 runs/s, min= 240.673886883 runs/s, max= 256.739409499 runs/s
RESULT Bindings: get-attribute= 250.209764698 runs/s
median= 250.626959986 runs/s, stdev= 4.12030002477 runs/s, min= 241.254523522 runs/s, max= 255.102040816 runs/s
RESULT Bindings: get-attribute= 248.907532887 runs/s
median= 250.312891114 runs/s, stdev= 3.23173125874 runs/s, min= 240.673886883 runs/s, max= 251.572327044 runs/s
RESULT Bindings: get-attribute= 250.243680844 runs/s
median= 250.783797637 runs/s, stdev= 4.19327170024 runs/s, min= 240.963855422 runs/s, max= 255.102040816 runs/s
RESULT Bindings: get-attribute= 245.329046608 runs/s
median= 244.948040416 runs/s, stdev= 2.24314248534 runs/s, min= 240.384615385 runs/s, max= 248.756218905 runs/s
* Bindings/get-attribute.html: Added.
2012-05-17 Kentaro Hara <haraken@chromium.org>
[perf-test] Add a binding benchmark for getElementById()
https://bugs.webkit.org/show_bug.cgi?id=86808
Reviewed by Ryosuke Niwa.
Currently Bindings/dom-attributes.html is just a collection
of random DOM attributes and methods. We should remove it and
instead add more reasonable micro benchmarks by classifying
DOM binding call paths.
This patch adds a benchmark for document.getElementById(),
which covers other DOM methods that return a Node Object.
The reason why we want to add a benchmark for document.getElementById()
in spite of the fact that Dromaeo/dom-query.html is already testing
document.getElementById(), is that Dromaeo/dom-query.html outputs one
result for several benchmarks (i.e. getElementById().nodeType,
getElementsByTagName()[0].nodeType etc), and thus we cannot observe
regression of getElementById() itself. (Catching regression of
getElementById() would be critical.)
Test results in my Linux desktop:
RESULT Bindings: get-element-by-id= 300.933707795 runs/s
median= 302.267002519 runs/s, stdev= 3.04954648504 runs/s, min= 295.930949445 runs/s, max= 305.34351145 runs/s
RESULT Bindings: get-element-by-id= 302.030324483 runs/s
median= 302.267481977 runs/s, stdev= 1.78518068367 runs/s, min= 298.507462687 runs/s, max= 304.568527919 runs/s
RESULT Bindings: get-element-by-id= 301.993483538 runs/s
median= 302.648171501 runs/s, stdev= 1.87604126626 runs/s, min= 296.662546354 runs/s, max= 304.568527919 runs/s
RESULT Bindings: get-element-by-id= 301.936607982 runs/s
median= 302.45758701 runs/s, stdev= 1.88991087072 runs/s, min= 298.879202989 runs/s, max= 304.955527319 runs/s
RESULT Bindings: get-element-by-id= 301.952234563 runs/s
median= 302.648171501 runs/s, stdev= 1.59929752614 runs/s, min= 299.625468165 runs/s, max= 304.568527919 runs/s
* Bindings/get-element-by-id.html: Added.
2012-05-17 Kentaro Hara <haraken@chromium.org>
[perf-test] Add a benchmark for body.scrollTop
https://bugs.webkit.org/show_bug.cgi?id=86806
Reviewed by Ryosuke Niwa.
Currently Bindings/dom-attributes.html is just a collection of random
DOM attributes and methods. We should remove it and instead add more
reasonable micro benchmarks by classifying DOM binding call paths.
This patch adds a benchmark for body.scrollTop, which covers other
DOM attributes that return small integers.
(Note: Performance optimization for the benchmark will be coming soon.)
Test results in my Linux desktop:
RESULT Bindings: scroll-top= 209.410654239 runs/s
median= 211.64021164 runs/s, stdev= 4.09958741195 runs/s, min= 201.005025126 runs/s, max= 212.483399734 runs/s
RESULT Bindings: scroll-top= 195.651111157 runs/s
median= 196.319018405 runs/s, stdev= 1.77011627406 runs/s, min= 191.846522782 runs/s, max= 197.28729963 runs/s
RESULT Bindings: scroll-top= 200.004907612 runs/s
median= 201.511335013 runs/s, stdev= 3.27455403827 runs/s, min= 193.236714976 runs/s, max= 202.53164557 runs/s
RESULT Bindings: scroll-top= 209.582737512 runs/s
median= 210.803689065 runs/s, stdev= 3.16769655464 runs/s, min= 203.045685279 runs/s, max= 211.920529801 runs/s
RESULT Bindings: scroll-top= 199.924607687 runs/s
median= 201.13144338 runs/s, stdev= 3.11080503619 runs/s, min= 193.003618818 runs/s, max= 202.02020202 runs/s
* Bindings/scroll-top.html: Added.
2012-05-17 Kentaro Hara <haraken@chromium.org>
[perf-test] Add a micro benchmark for div.firstChild getter for an undefined firstChild
https://bugs.webkit.org/show_bug.cgi?id=86725
Reviewed by Ryosuke Niwa.
We are going to remove Bindings/dom-attributes.html and instead add more
reasonable micro benchmarks by classifying DOM binding call paths.
In this bug, we add a micro benchmark for div.firstChild getter for an
undefined firstChild. This benchmark covers other undefined DOM attributes
that return a null.
(Note: In V8, div.firstChild for an undefined firstChild is currently slower
than div.firstChild for a defined firstChild.)
Test results in my Linux desktop:
RESULT Bindings: undefined-first-child= 541.408311042 runs/s
median= 541.205412054 runs/s, stdev= 1.29841219187 runs/s, min= 537.897310513 runs/s, max= 543.209876543 runs/s
RESULT Bindings: undefined-first-child= 541.00750695 runs/s
median= 540.540540541 runs/s, stdev= 0.967521230965 runs/s, min= 539.215686275 runs/s, max= 543.209876543 runs/s
RESULT Bindings: undefined-first-child= 523.630714897 runs/s
median= 523.560209424 runs/s, stdev= 1.01570919645 runs/s, min= 522.193211488 runs/s, max= 525.624178712 runs/s
RESULT Bindings: undefined-first-child= 553.077663588 runs/s
median= 553.459119497 runs/s, stdev= 0.805697397863 runs/s, min= 551.378446115 runs/s, max= 554.156171285 runs/s
RESULT Bindings: undefined-first-child= 541.5401432 runs/s
median= 541.538666618 runs/s, stdev= 0.954301364767 runs/s, min= 539.877300613 runs/s, max= 543.209876543 runs/s
* Bindings/undefined-first-child.html: Added.
2012-05-17 Kentaro Hara <haraken@chromium.org>
[Performance test] Add a micro benchmark for div.firstChild getter
https://bugs.webkit.org/show_bug.cgi?id=86582
Reviewed by Ryosuke Niwa.
We are going to remove Bindings/dom-attributes.html and instead add more
reasonable micro benchmarks by classifying DOM binding call paths.
In this bug, we add a micro benchmark for div.firstChild getter.
This benchmark covers 'firstChild', 'lastChild', 'nextSibling' and
'previousSibling' in Dromaeo/dom-traverse.html, and other DOM attributes
that return a Node object.
Multiple test results in my Linux desktop:
RESULT Bindings: first-child= 798.157160346 runs/s
median= 798.004987531 runs/s, stdev= 1.52006063407 runs/s, min= 796.019900498 runs/s, max= 801.001251564 runs/s
RESULT Bindings: first-child= 797.603608554 runs/s
median= 797.872340426 runs/s, stdev= 2.2522621261 runs/s, min= 791.556728232 runs/s, max= 801.001251564 runs/s