 <p>If you look at the source code in <a href="http://webtimingdemo.appspot.com/" rel="nofollow">http://webtimingdemo.appspot.com/</a> it runs the code AFTER onload (setTimeout('writeTimings()', 0)), your code runs in $(document).ready() which runs before onload as it runs on DOMContentLoaded in Chrome.</p> <p>I have put a setTimeout into your code and now it works: See <a href="http://jsbin.com/acabo4/8" rel="nofollow">http://jsbin.com/acabo4/8</a></p> <pre><code>var performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance || {}; var timing = performance.timing || {}; function getTiming(timingStr) { if (!timing) return 0; var time = timing[timingStr]; return time; } var loadTime = (new Date().getTime() - getTiming("navigationStart"))/1000; $(document).ready(function() { setTimeout(function(){ var perflist = '&lt;ul id=perflist&gt;'; for(var performer in timing){ var j = getTiming(performer); perflist += '&lt;li&gt;' + performer + ' is: ' + j + '&lt;/li&gt;'; } perflist += '&lt;/ul&gt;'; $("body").prepend(perflist); $("#adminmenu").prepend("&lt;li&gt;Load time : " + loadTime + " seconds&lt;/li&gt;") }, 100); }); </code></pre>