Javascript: прямой цикл, обратный цикл…

Jun 03, 2010 21:52


Прочитал, что цикл вида for(var j=testedArr.length; j--;){…} выполняется быстрее цикла вида for(var j=0; j «для большинства реализаций Javascript». Собственно, это хорошо известно. Сейчас я просто решил проверить.

Так вот, это действительно верно для всех браузеров, а в особенности - IE 8 (оный, между прочим, в своей обычной хамской манере вынудил ( Read more... )

программирование, chrome, ecmascript, ie

Leave a comment

mr_aleph June 5 2010, 08:38:07 UTC
>> Дюже странно сие, а на порядок большее общее время выполнения тестовых скриптов, нежели у остальных браузеров (кроме, конечно, IE), и тем паче.

скрипты и результаты замеров в студию.

>> А ведь движок-то у них с Safari один, Webkit.

движок JavaScript у Chrome называется V8.

Reply

torbasow June 9 2010, 07:13:11 UTC
Добавил в исходный пост.

Reply

mr_aleph June 9 2010, 07:26:33 UTC
спасибо! посмотрим, что там такое медленное.

еще хотелось бы все таки код странички с помощью, которой проводились измерения в браузерах.

Reply

torbasow June 12 2010, 08:41:37 UTC

Ну, блин, там всё тривиально:

Тест

Reply

mr_aleph June 12 2010, 09:16:37 UTC
посмотрел, в V8 тут много времени тратится не на скорость кручения цикла --- все упирается в аллокацию и сборку мусора. Если Math.random() заменить на 0 то все разгоняется примерно в 10 раз, потому что элементы массива начинают умещаться в SMI-представление и пропадает нужда выделять под них HeapNumber'ы.

Reply

torbasow June 15 2010, 07:14:57 UTC
Вот оно что. Ну, для сравнения вариантов кода в рамках одного браузера это должно быть без разницы.

Reply


Leave a comment

Up