JavaScript: Каков прирост производительности за счет оптимизации поиска имен? - PullRequest
1 голос
/ 21 декабря 2009

Компания, в которой я работаю, купила нам (точнее мне) поваренную книгу jQuery от O'Reilly, которую я читаю спереди назад. Сейчас я нахожусь в 5.13, где говорится о поиске имен. Он утверждает, что при правильных обстоятельствах код, оптимизированный для поиска имен, может иметь повышение производительности до 70%. В одном очень ситуативном примере заявлено, что он даже в 35 раз быстрее и сокращает время выполнения с 7 секунд до всего лишь 0,2 секунды!

Мой вопрос таков: каким образом оптимизация поиска имени повышает производительность в реальной реальной ситуации и стоит ли это дополнительных нескольких часов в приложении AJAX на 4 тыс. Линий JS?

Ответы [ 2 ]

3 голосов
/ 21 декабря 2009

Фактор, который помогает, зависит от того, как он используется на самом деле. Это все равно, что спросить, как долго кусок веревки.

Я видел настройки имен для true, false, undefined может сделать приложение как минимум в 10 раз быстрее в javascript. Причина, по которой он стал быстрее, заключается в том, что ему не нужно заглядывать внутрь глобальной цепочки областей видимости. Ник Закас объясняет это довольно хорошо в видео ниже из кода Google

http://googlecode.blogspot.com/2009/06/nicholas-c-zakas-speed-up-your.html

EDIT:

Я только что натолкнулся на это и подумал, что это может быть полезно. это быстрое объяснение цепочки обзора тоже. http://www.phpied.com/extreme-javascript-optimization/

2 голосов
/ 21 декабря 2009

Николас Закас провел несколько исследований на эту тему и говорит об этом на этом Google Tech Talk . Кажется, что вы можете получить интересное повышение производительности. Я не уверен насчет точного числа, но уверен, что оптимизация поиска по имени улучшит скорость вашего кода.

Конечно, если вы тянете за собой 10-летний устаревший код, который работает просто отлично, не беспокойтесь об оптимизации ... но если ваше приложение работает медленно, я бы подумал об оптимизации кода.

Если вы решили заняться рефакторингом, попробуйте точно определить, что вы можете оптимизировать. Для этого я рекомендую использовать javascript profiler firebug .

Вы даже можете попытаться оптимизировать незначительную часть своего кода, посмотреть на повышение производительности, которое вы получаете, а затем выяснить, стоит ли оптимизировать остальную часть вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...