aboutsummaryrefslogtreecommitdiffstats
path: root/tests/html/test_dom_performance.html
blob: e4222098f7a5d0388cb767d8ad161e1b1eed4a23 (plain) (blame)
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
<html>
  <head>
    <meta charset="UTF-8">
    <script>
      var ITERATIONS = 100000;

      var tests = {
        testGetLabelString: function() {
          var label = document.getElementById("lb");
          for (var i=0; i<ITERATIONS; ++i) {
            var str = label.textContent;
          }
        },

        testGetLabelNumber: function() {
          var label = document.getElementById("lb");
          for (var i=0; i<ITERATIONS; ++i) {
            var str = label.nodeType;
          }
        },

        testSetLabel: function() {
          var label = document.getElementById("lb");
          for (var i=0; i<ITERATIONS; ++i) {
            label.innerHTML = "Test string new";
          }
        },

        testCallSimpleMethod: function() {
          var label = document.getElementById("lb");
          for (var i=0; i<ITERATIONS; ++i) {
             label.blur();
          }
        },

        testCallMethodReturnValue: function() {
          var label = document.getElementById("lb");
          for (var i=0; i<ITERATIONS; ++i) {
            document.adoptNode(label);
          }
        },

        testEventObjectCreation: function() {
          for (var i=0; i<ITERATIONS; ++i) {
            var event = new Event('build');
          }
        }
      };

      function runTests() {
        var res = document.getElementById("results");
        res.innerHTML = '';
        for (t in tests) {
          var beginTime = performance.now();
          tests[t]();
          var endTime = performance.now();
          var diff = ((endTime - beginTime) / ITERATIONS * 1000000).toFixed(0);
          res.innerHTML = res.innerHTML  + t + ": " + diff + " ns<br>";
        }
      }

    </script>
  </head>

  <body onload="runTests()">
    <label id="lb">Test string</label> <br>
    <h1>Results:</h1>
    <div id="results">Processing...</div>
  </body>
</html>