крохотный benchmark браузеров
13 сентября 2011, 5:23
Автор: 1234ru
Так получилось, что актуально мне было поизмерять, с какой скоростью Javascript проходит по циклу.
Результаты измерений отражают интересные соотношения в быстродействии браузеров.
Для измерений использовался простейший код - прибавление переменной:
Соответственно, результаты в милисекундах были получены следующие:
Firefox 6.0.2 - 11
Chrome 13.0.782.220 m - 16
Opera 11.61 - 3
IE 8 (отдельный) - 375
IE 8 (IE Tester) - 390
IE 7 (IE Tester) - 440
IE 6 (IE Tester) - 440
Интересный факт - сравнение с переменной занимает больше времени, чем сравнение с константой: если вместо i < 1000000 завести переменную max, присвоить ей миллион и сравнивать уже как i < max, время работы кода увеличилось, например, в IE 6 примерно 25% (вместо 440 мс стало где-то 550).
Тестирование проводилось на AMD Athlon 3200++ Socket 754 (т.е. довольно тормозном по современным понятиям компьютере) под WinXP SP3.
Разумеется, нужно сказать, что в реальных жизненных ситуациях разница в производительности может иметь другое соотношение.
Вообще операции, не связанные с изменением внешнего вида документа или сетевой активностью, нередко выполняются столь быстро, что о них не стоит и думать. Например, даже Internet Explorer справился с поиском фрагмента в наборе из 1000 строк, каждая из которых была длиной 20 Кб, за несколько десятков милисекунд. Поэтому при проектировании клиентских приложений на языке Javascript основное внимание следует уделить программированию манипуляций с DOM-деревом и AJAX-запросов.
Результаты измерений отражают интересные соотношения в быстродействии браузеров.
Для измерений использовался простейший код - прибавление переменной:
var start,
end,
i ;
start = new Date().getTime(); // количество милисекунд с 01.01.1970
for (i = 1; i < 1000000; i++) // миллион раз
; // ничего не делаем; просто цикл
end = new Date().getTime();
alert(end - start);
end,
i ;
start = new Date().getTime(); // количество милисекунд с 01.01.1970
for (i = 1; i < 1000000; i++) // миллион раз
; // ничего не делаем; просто цикл
end = new Date().getTime();
alert(end - start);
Соответственно, результаты в милисекундах были получены следующие:
Firefox 6.0.2 - 11
Chrome 13.0.782.220 m - 16
Opera 11.61 - 3
IE 8 (отдельный) - 375
IE 8 (IE Tester) - 390
IE 7 (IE Tester) - 440
IE 6 (IE Tester) - 440
Интересный факт - сравнение с переменной занимает больше времени, чем сравнение с константой: если вместо i < 1000000 завести переменную max, присвоить ей миллион и сравнивать уже как i < max, время работы кода увеличилось, например, в IE 6 примерно 25% (вместо 440 мс стало где-то 550).
Тестирование проводилось на AMD Athlon 3200++ Socket 754 (т.е. довольно тормозном по современным понятиям компьютере) под WinXP SP3.
Разумеется, нужно сказать, что в реальных жизненных ситуациях разница в производительности может иметь другое соотношение.
Вообще операции, не связанные с изменением внешнего вида документа или сетевой активностью, нередко выполняются столь быстро, что о них не стоит и думать. Например, даже Internet Explorer справился с поиском фрагмента в наборе из 1000 строк, каждая из которых была длиной 20 Кб, за несколько десятков милисекунд. Поэтому при проектировании клиентских приложений на языке Javascript основное внимание следует уделить программированию манипуляций с DOM-деревом и AJAX-запросов.