На Главную

О производительности Javascript frameworks

March 16th, 2008 by Yuriy Drozdov

Одним из критериев при выборе Javascript фреймворка является его производительность. В оценке производительности могут помочь различные тесты. Одним из таких тестов является SlickSpeed Selectors Test - тест на скорость/валидность CSS 3 селекторов в фреймворках. На момент написания статьи в этом тесте рассматриваются следующие Javascript фреймворки:

В каждом браузере у фреймворков разная производительность. На рисунках ниже я графически представил полученные мною результаты теста в трех браузерах: Firefox, IE и Opera, со своими небольшими комментариями к каждому.

javascript test in firefox

В Firefox самым быстрым оказывается MooTools и ему дышит в спину с разницей в 1 ms Dojo. Следом за ними с отставанием в 123 ms и 167 ms, соответственно, следуют JQuery и Prototype.

javascript test in ie

В Internet Explorer картина поменялась. Заметно увеличилось время прохождения теста у всех его участников. В лидеры вырвался Dojo с его 298 ms, на второе место попал JQuery с результатом в 405 ms, обогнав MooTools, который потратил на тест целых 730 ms. Почетное последние место занимает Prototype, который потратил ни много ни мало, а 1833 ms на прохождение теста.

javascript test in opera

Как и следовало ожидать, в Opera результаты теста отличны от двух предыдущих браузеров. В лидерах, как и в случае с IE у нас Dojo с рекордно малым результатом 76 ms, вторым идет JQuery, который потратил на тест, в сравнении c лидером, более чем в два раза больше времени - 168 ms. Третим по времени выполнения теста оказался MooTools с результатом в 220 ms. Последним, как и в двух предыдущих случаях, оказался Prototype с 317 ms.

Не смотря на преимущество MooTools в Firefox, первым в IE и Opera окзался фреймворк Dojo. Его бы я и поставил на первое место. На второе место я бы поставил JQuery, не смотря на 3-е место по производительности в Firefox, этот фреймворк был вторым в IE и Opera, причем отставание MooTools в этих браузерах гораздо больше, чем его преимущество в Firefox, а также следует учесть, что браузером IE пользуется больше 50% пользователей. Третье место за MooTools. Последним в тестах стабильно был Prototype, что навело меня на грустные мысли о целесообразности его использования в своих проектах.

P.S. Юрий “akella” Артюх подсказал http://lusever.ru/css-selectors/ (за что ему огромное спасибо), который многим может показаться также интересным.

Автор: Yuriy Drozdov

Похожие статьи:

RSS комментариев

22 Комментариев

Comment by Alex Subscribed to comments via email
2008-03-16 23:53:15

Запустил этот тест в опере 9.26 (в ней предварительно было открыто порядка 30 вкладок, сожрано ~280 мег оперативы) - так JQuery оказался на последнем месте.

Dojo 1.0.2 = 144
JQuery 1.2.3 = 353
MooTools 1.2beta2 = 318
Prototype 1.6.0.2 = 296

Comment by Yuriy Drozdov
2008-03-17 14:14:32

Забавно, что Prototype на втором :)

 
 
2008-03-17 11:35:35

Стоит еще брать во внимание то, что реально селекторы из css 3 просто не применимы в реальных проектах, поэтому тестирование не совсем показывает то, что надо..

Comment by Alex Subscribed to comments via email
2008-03-17 13:03:34

Отчего ж неприменимы, если можно взять любой из тестируемых фреймворков и заюзать его для CSS3 селекторов ;)

2008-03-17 14:17:28

Заюзать. Но причем тут реальные проекты? Кто-то где-то эти селекторы в реальных проектах применяет?:)

Comment by Scratch Subscribed to comments via email
2008-03-21 11:31:46

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

(Вложеность комментариев заканчивается на этом уровне)
 
 
 
 
2008-03-17 14:18:41

А еще одно - такие тесты надо раз 10-15 проводить, а тогда уже среднее значение брать - это будет более правдивое сравнение, хотя и оторванное от жизни.

Или автор так и делал?

Comment by Yuriy Drozdov
2008-03-17 14:28:09

Станислав, в “чистом” браузере цифры примерно одинаковые. Попробовал только что в браузере, в котором немного поработал с 9 открытыми вкладками - цифры заметно меняются, хотя Dojo всегда остается в лидерах.

2008-03-17 14:30:46

Я же говорил не о “чистом” или “нечистом”, а о том, сколько замеров производится :)

Comment by Yuriy Drozdov
2008-03-17 14:34:03

5 замеров в “чистом” браузере дают примерно одинаковые результаты.

(Вложеность комментариев заканчивается на этом уровне)
 
 
 
Comment by Alex Subscribed to comments via email
2008-03-17 15:19:03

Там идет 4-ре итерации теста с вычислением среднего времени. Причем почему-то если после первой итерации время получается больше чем 750 мс, то на этом тест и заканчивается.

Comment by Yuriy Drozdov
2008-03-17 15:24:17

Исходник теста доступен на slickspeed.googlecode.com. Можно скачать и посмотреть, почему именно так.

 
 
 
Comment by akella Subscribed to comments via email
2008-03-17 21:02:39

Возможно придется в тему эта тестовая страничка
http://lusever.ru/css-selectors/

Comment by Yuriy Drozdov
2008-03-18 20:03:57

Спасибо, сейчас добавлю ее в текст статьи.

 
 
Comment by lusever Subscribed to comments via email
2008-03-20 20:16:07

Френдленту не читаешь?)))

Comment by Yuriy Drozdov
2008-03-20 20:27:24

Читаю, но тот пост как-то мимо меня прошел :)

Comment by akella Subscribed to comments via email
2008-03-20 20:28:31

Вот и приходится третьим лицам компенсировать пропуски :P

 
 
 
Comment by vladm Subscribed to comments via email
2008-03-21 01:32:41

А сам лично какой framework предпочитаешь, Юра?

Comment by Yuriy Drozdov
2008-03-21 13:27:37

Предпочитаю Prototype, но, в последнее время, решил что целесообразней использовать JQuery.

 
 
2008-03-22 15:05:34

[...] О производительности Javascript frameworks pdf [...]

 
Comment by Бизнес Мэн
2008-04-21 00:02:52

MooTools 1.2beta2 - первый раз слышу. Хотя тесты интересные относительно.

Удобная вещь в юзабилити?
А вообще прототип рулит, ИМХО.

 
Comment by vestel
2008-05-23 19:47:33

Мое почтение prototype, благо он встроен в RoR, а я последнее время в нем только все и делаю. На моем Flock 1.0 Linux, prototype был первым, Moo вторым, а Dojo и jQuery заняли последнее место. Тестировал приведененной выше ссылкой.

 

Извините, комментарии закрыты.