Created
December 5, 2009 19:14
-
-
Save dvdrtrgn/249814 to your computer and use it in GitHub Desktop.
Array clone bakeoff
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if (document.getElementById('hello')) { | |
document.getElementById('hello').innerHTML = 'Hello World - this was inserted using JavaScript'; | |
} | |
var original_array = [], | |
dup_array; | |
for (var j = 0; j < 1500000; j++) { | |
original_array[j] = 9; | |
} | |
function test1() { | |
dup_array = null; | |
var timeStart, timeEnd; | |
timeStart = (new Date()).getTime(); | |
dup_array = original_array.slice(); | |
timeEnd = (new Date()).getTime(); | |
document.getElementById('test1result').innerHTML = (timeEnd - timeStart); | |
setTimeout(test2, 1000); | |
} | |
function test2() { | |
dup_array = null; | |
var timeStart, timeEnd; | |
timeStart = (new Date()).getTime(); | |
dup_array = []; | |
for (var i = 0, l = original_array.length; i < l; ++i) | |
dup_array[i] = original_array[i]; | |
timeEnd = (new Date()).getTime(); | |
document.getElementById('test2result').innerHTML = (timeEnd - timeStart); | |
setTimeout(test3, 1000); | |
} | |
function test3() { | |
dup_array = null; | |
var timeStart, timeEnd, l; | |
timeStart = (new Date()).getTime(); | |
l = original_array.length; | |
dup_array = new Array(l); | |
for (var i = 0; i < l; ++i) | |
dup_array[i] = original_array[i]; | |
timeEnd = (new Date()).getTime(); | |
document.getElementById('test3result').innerHTML = (timeEnd - timeStart); | |
} | |
function run() { | |
test1(); | |
} | |
document.getElementsByTagName('input')[0].value = "ready"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset=utf-8 /> | |
<title>Array clone bakeoff</title> | |
<!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> | |
<style> article, aside, figure, footer, header, hgroup, menu, nav, section { display: block; } </style> | |
</head> | |
<body> | |
<table> | |
<tr> | |
<td>test1 slice</td> | |
<td><span id="test1result" ></span></td> | |
</tr> | |
<tr> | |
<td>test2 loop</td> | |
<td><span id="test2result" ></span></td> | |
</tr> | |
<tr> | |
<td>test3 loop fixed size</td> | |
<td><span id="test3result" ></span></td> | |
</tr> | |
</table> | |
<input type="button" value="wait" onclick="run()"> | |
<script src="clone.js"></script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment