haikuwebkit/PerformanceTests/Bindings/get-element-by-id.html

16 lines
418 B
HTML
Raw Permalink Normal View History

[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. Canonical link: https://commits.webkit.org/104448@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@117548 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-18 06:29:59 +00:00
<!DOCTYPE html>
<html>
<body>
<div id="foo"></div>
<script src="../resources/runner.js"></script>
<script>
Rename PerfTestRunner.runPerSecond to PerfTestRunner.measureRunsPerSecond for consistency https://bugs.webkit.org/show_bug.cgi?id=99642 Reviewed by Dirk Pranke. Renamed the method. * Bindings/append-child.html: * Bindings/create-element.html: * Bindings/event-target-wrapper.html: * Bindings/first-child.html: * Bindings/get-attribute.html: * Bindings/get-element-by-id.html: * Bindings/get-elements-by-tag-name.html: * Bindings/id-getter.html: * Bindings/id-setter.html: * Bindings/insert-before.html: * Bindings/node-list-access.html: * Bindings/scroll-top.html: * Bindings/set-attribute.html: * Bindings/typed-array-construct-from-array.html: * Bindings/typed-array-construct-from-same-type.html: * Bindings/typed-array-construct-from-typed.html: * Bindings/typed-array-set-from-typed.html: * Bindings/undefined-first-child.html: * Bindings/undefined-get-element-by-id.html: * Bindings/undefined-id-getter.html: * CSS/CSSPropertySetterGetter.html: * CSS/CSSPropertyUpdateValue.html: * CSS/PseudoClassSelectors.html: * DOM/textarea-dom.html: * DOM/textarea-edit.html: * Interactive/resources/window-resize.js: * Layout/flexbox-column-nowrap.html: * Layout/flexbox-column-wrap.html: * Layout/flexbox-row-nowrap.html: * Layout/flexbox-row-wrap.html: * Layout/line-layout.html: * Parser/css-parser-yui.html: * Parser/innerHTML-setter.html: * Parser/query-selector-deep.html: * Parser/query-selector-first.html: * Parser/query-selector-last.html: * Parser/simple-url.html: * Parser/textarea-parsing.html: * Parser/tiny-innerHTML.html: * Parser/url-parser.html: * Parser/xml-parser.html: * SVG/SvgNestedUse.html: * resources/runner.js: Canonical link: https://commits.webkit.org/117606@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@131651 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-17 22:06:52 +00:00
PerfTestRunner.measureRunsPerSecond({
[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. Canonical link: https://commits.webkit.org/104448@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@117548 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-18 06:29:59 +00:00
description: "This benchmark covers 'getElementById' in Dromaeo/dom-query.html, and other DOM methods that return a Node object.",
run: function() {
for (var i = 0; i < 100000; i++)
document.getElementById("foo");
}});
</script>
</body>
</html>