From: wout Date: Thu, 4 Aug 2016 16:33:26 +0000 (+0200) Subject: Added native testcases for benchmarking system X-Git-Tag: 2.3.5~12 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=7b1055707ca2eb2302049e178f5fa8e927baf0b1;p=svg.js.git Added native testcases for benchmarking system --- diff --git a/bench/runner.html b/bench/runner.html index 0ede94f..4c40208 100644 --- a/bench/runner.html +++ b/bench/runner.html @@ -7,15 +7,18 @@ font-family: 'Helvetica Light', Helvetica, sans-serif; font-weight: 300; } - #draw { + svg { width: 2px; height: 2px; overflow: hidden; + position: fixed; + right: 0; }
+ diff --git a/bench/svg.bench.js b/bench/svg.bench.js index 3f12f30..653d438 100644 --- a/bench/svg.bench.js +++ b/bench/svg.bench.js @@ -6,6 +6,7 @@ , _before: function() {} , _after: function() {} , draw: SVG('draw') + , raw: document.getElementById('native') // Add test , test: function(name, closure) { @@ -45,7 +46,10 @@ this.write( this._tests[i].name, ( new Date ).getTime() - s ) // run after - this._after(this._tests[i]) + this._after(this._tests[i]) + + // clear everything + this.clear() } } @@ -71,6 +75,13 @@ return pad } + + // Clear canvasses + , clear: function() { + while(this.raw.hasChildNodes()) + this.raw.removeChild(this.raw.lastChild) + this.draw.clear() + } } })(); \ No newline at end of file diff --git a/bench/tests/element-creation.js b/bench/tests/element-creation.js index 6e35a08..107c353 100644 --- a/bench/tests/element-creation.js +++ b/bench/tests/element-creation.js @@ -1,18 +1,50 @@ -;(function(bench) { - - bench.test('generate 10000 rects', function() { +(function(bench) { + var svgns = 'http://www.w3.org/2000/svg' + + bench.test('svg.js: generate 10000 rects', function() { for (var i = 0; i < 10000; i++) bench.draw.rect(100,100) }) - bench.test('generate 10000 rects with fill', function() { + bench.test('native: generate 10000 rects', function() { + for (var i = 0; i < 10000; i++) { + var rect = document.createElementNS(svgns, 'rect') + rect.setAttributeNS(null, 'height', 100) + rect.setAttributeNS(null, 'width', 100) + bench.raw.appendChild(rect) + } + }) + + bench.test('svg.js: generate 10000 rects with fill', function() { for (var i = 0; i < 10000; i++) bench.draw.rect(100,100).fill('#f06') }) - bench.test('generate 10000 rects with position and fill', function() { + bench.test('native: generate 10000 rects with fill', function() { + for (var i = 0; i < 10000; i++) { + var rect = document.createElementNS(svgns, 'rect') + rect.setAttributeNS(null, 'height', 100) + rect.setAttributeNS(null, 'width', 100) + rect.setAttributeNS(null, 'fill', '#f06') + bench.raw.appendChild(rect) + } + }) + + bench.test('svg.js: generate 10000 rects with position and fill', function() { for (var i = 0; i < 10000; i++) bench.draw.rect(100,100).move(50,50).fill('#f06') }) -})(SVG.bench); \ No newline at end of file + bench.test('native: generate 10000 rects with position and fill', function() { + for (var i = 0; i < 10000; i++) { + var rect = document.createElementNS(svgns, 'rect') + rect.setAttributeNS(null, 'height', 100) + rect.setAttributeNS(null, 'width', 100) + rect.setAttributeNS(null, 'fill', '#f06') + rect.setAttributeNS(null, 'x', 50) + rect.setAttributeNS(null, 'y', 50) + bench.raw.appendChild(rect) + } + }) + +})(SVG.bench) \ No newline at end of file