Сообщение от with-love-from-siberia
|
Статья, описывающая приведенный код, уже существует
|
Наверное, на dklab.ru? Я через неё и нашёл скрипт. Проблема такая: функции, скорость которых надо измерять, находятся внутри конструкции (function (){})(). И benchmark не работает, говорит: "1 is not function" или что-то в этом роде (точная цитата - в обещанной статье
http://ir2.ru/benchmark.aspx).
Но это полбеды. Гораздо хуже - отсутствие у функций свойства
name в ИЕ. Я нашёл только такой способ обойти её:
Функцию
makeThead() с параметром
t вызывать так:
fixTime(window, "makeThead", t)
А сама функция
fixTime будет примерно такой:
function fixTime() {
var d1, d0 = new Date(), ret, i,
obj = arguments[0], f = arguments[1],
args = Array.prototype.slice.call(arguments, 2)
obj = obj || window
if (!(f in obj) || typeof obj[f] !== 'function') return
ret = obj[f].apply(this, args)
d1 = new Date()
Log(d1 – d0, f)
return ret
}