codeisart.

JS Core

«js-core» test drive

Решил провести небольшой тест производительности своего JavaScript framework’а « js-core ». Для сравнения, конечно же, взял « jQuery », который хорошо знаю и имею…

В этой статье

Продолжить чтение

JS Core →

«js-core» test driveРешил провести небольшой тест производительности своего JavaScript framework’а «js-core». Для сравнения, конечно же, взял «jQuery», который хорошо знаю и имею отчетливое представление о его работе.

Конечно, «js-core» не столь функционален, как «jQuery», поэтому я решил провести тест, на примере, который можно записать практически одинаково и в моем framework’е и в «jQuery».

js-core:

$.ready(function() {

  for(var i = 0; i < 1000; i++)
    $.n('pre')
    .addClass('xxx')
    .text(i)
    .appendTo(document.body);

  var timeAfter = new Date();

  $.n('p')
  .text(timeAfter.getTime() - timeBefore.getTime())
  .prependTo(document.body);

});

jQuery:

$(document).ready(function() {

  for(var i = 0; i < 1000; i++)
    $('<pre></pre>')
    .addClass('xxx')
    .text(i)
    .appendTo(document.body);

  var timeAfter = new Date();

  $('<p></p>')
  .text(timeAfter.getTime() - timeBefore.getTime())
  .prependTo(document.body);

});

В первую строку каждого framework’а был добавлен следующий код:

var timeBefore = new Date();

«js-core» and «jQuery»

Конфигурация компьютера, на котором производился тест:

  • процессор: Intel Pentium 4 (3000MHz/512kb/HT);
  • метеринская плата: Epox на базе i865PE (fsb 1000MHz);
  • память: 2×512Mb (DDR PC-3200/dual channel);
  • ОС: Windows XP Service Pack 2.

В общем, древний компьютер, приобретенный в далеком 2003 году.

Для тестирования были использованы следующие имеющиеся на тестовом компьютере браузеры:

  • Internet Explorer 6 (из пакета MultipleIEs);
  • Internet Explorer 8 beta 2;
  • Mozilla FireFox 3.0.1;
  • Opera 9.52 сборка 10108;
  • Safari 3.1 сборка 525.13;
  • Google Chrome 0.2.149.29.

Страницы открывались через протокол «file:», т. е. не использовался никакой веб-сервер. Для каждого framework’а на всех браузерах проводилось по 10 попыток загрузки, повторяемых нажатием клавиши «F5», записывалось время, выдаваемое скриптом. Затем было посчитано среднее арифметическое для каждого браузера. XHTML-страницы содержали только необходимые теги, для подключения скриптов и пустое тело <body>.

Результаты теста
  IE6 IE8b2 FireFox 3.0.1 Opera 9.52 Safari 3.1 Google Chrome 0.2
js-core 516 478 212 134 86 103
jQuery 2880 2314 1272 636 716 621

Диаграмма производительности «js-core» и «jQuery»

Как видим «js-core» в данном тесте оказался гораздо быстрее «jQuery», что меня, конечно, очень сильно порадовало Заметьте, какой отрыв «js-core» от «jQuery» в тестах IE. «Opera», «Safari» и «Google Chrome» оказались самыми быстрыми в работе с DOM, недалеко от них «FireFox», ну а IE как всегда…