4 <title>Floats layout performance tester</title>
10 border: 1px solid green;
24 function createElement(tag, parent, className, id)
26 var el = document.createElement(tag);
27 el.className = className;
29 parent.appendChild(el);
33 function createSet(width, height, nested)
35 var container = createElement("div", document.body, "container");
36 for (var y = 0; y < height; ++y) {
37 for (var x = 0; x < width; ++x)
38 createElement("div", container, "float", "float" + x + "_" + y);
40 var nestedContainer = container;
41 for ( ; nested > 0; --nested)
42 nestedContainer = createElement("div", nestedContainer, "nested", "nested" + x + "_" + nested);
44 createElement("div", container, "float-end", "end" + x)
48 function toggle(str, str1, str2)
55 function test(width, height, nested)
59 document.getElementById("test_panel").style.display = "none";
60 document.getElementById("framerate_panel").style.display = "block";
62 createSet(width, height, nested);
64 var startTime = new Date();
66 function updateTimer()
70 var newTime = new Date();
71 var deltaTime = newTime - startTime;
73 if ((deltaTime > 0 && updates > 100) || deltaTime > 1000) {
74 var fps = updates * 100 / deltaTime;
75 document.getElementById("fps").innerHTML = fps;
83 var x = Math.floor(Math.random() * width);
84 var y = Math.floor(Math.random() * height);
85 var el = document.getElementById("float" + x + "_" + y);
86 el.className = toggle(el.className, "float", "float big");
89 setInterval(update, 0);
94 <div id="framerate_panel">Framerate: <span id="fps">calculating...</span> fps</div>
96 <p>Choose the size of the test:</p>
97 <button onclick="test(2, 100)">2 by 100</button>
98 <button onclick="test(20, 100)">20 by 100</button>
99 <button onclick="test(50, 100)">50 by 100</button>
100 <button onclick="test(100, 100)">100 by 100</button>
102 <button onclick="test(2, 100, 100)">2 by 100, 100 nested</button>
103 <button onclick="test(20, 100, 100)">20 by 100, 100 nested</button>
104 <button onclick="test(50, 100, 100)">50 by 100, 100 nested</button>
105 <button onclick="test(100, 100, 100)">100 by 100, 100 nested</button>