IE + JavaScript Performance Recommendations
Peter Gurevich, Performance PM for IE7, недавно написал заметку в блоге IE7 на тему оптимизации JS. В этой заметке он с полной серьёзностью рекомендует нам экономить на спичках - кэшировать локально имена глобальных функций, например.
Очень хочется убить его об стену. Или программистов MS, которые не смогли это оптимизировать. Или себя, на худой конец.
комментарии
virtuallight:
это ты к тому, что он херню пишет, или к тому, что jscript в ie устроен так себе?
_arty:
Херню он вряд ли пишет. По крайней мере, хочется надеяться, что его программеры не пустили бы парня писать этот текст, не объяснив, что к чему. То есть, я думаю, что ПМ по производительности IE вряд ли выдаст херню.
А из этого следует, что JS в IE так себе даже в 7 версии. Поэтому мне очень грустно.
virtuallight:
а ведь все, что он написал - вообще всё! - связано с look-up'ами разными, заметь.
просто странно из этого делать вывод, что "весь js в ie7" - так себе ;)
_arty:
Трудно поверить, что программеры JScript, не сумев оптимизировать даже то, что используется на каждом шагу, сделали что-то хорошее в остальных местах.
virtuallight:
трудно поверить, что зебра покрашена в полоску только с одной стороны?)
_arty:
Да, особенно учитывая мой background в биологии : )
virtuallight:
кароче, я не знаю, как там че устроено. но слова "late binding", и "eval" влегкую приводят меня к мысли, что да, lookup может быть тяжелой и в принципе очень тяжело оптимизируемой операцией. зависит от того, как представляется разобранный код в интерпретаторе. а менять представление кода, каким бы оно не было - это очень тяжелая и трудная операция.
я его не защищаю. он просто рассказал все как есть - lookup это тяжело, не используйте его. и делать выводы, что "программисты - дебилы" - ну это.. как-то очень поверхностно.
с точки зрения "криворукости программистов" твоя любимая опера мне представляется куда более жуткой помойкой ;)
_arty:
В некоторых частях - возможно, но по скорости JS у неё равных нет, не так ли? Причем различия с IE вроде как на порядки идут.
Я верю, что операция тяжёлая и сложная, но раз она используется буквально в каждой строчке, нужно было разбиться, но максимально её оптимизировать. Имхо если они не оптимизировали даже такое, то они плохие программисты.
Я ожидал что он расскажет например про то, как медленно работает в IE getElementById(). Это я бы еще хоть как-то понял.
levong:
угу, я не гуру джаваскрипта, конечно, но чую, что невозможность (==запредельная сложность) автоматической оптимизации диктуется в основном идеологией языка (в части late binding, а ещё - relaxed синтаксиса объявлений переменных).
про оперу согласен тоже =) то есть она и правда быстрая, если б чуток усилий её разработчиков ещё направить в сторону соблюдения стандартов - пусть в ущерб 5% производительности; и поддержке полноценного API для написания расширений - пусть в ущерб ещё 5% даже... :)