Итак, у нас есть этот продукт, и он очень медленный в IE. Мы уже применили множество рекомендаций, рекомендованных самими ребятами IE (like this и), и попытайтесь пожертвовать чистым кодом для производительности в критических частях, таких как манипуляции с DOM.Javascript, IE, строки и проблемы с производительностью
Однако, как вы можете видеть на скриншоте IE профилировщика .. alt text http://i43.tinypic.com/24g57c1.png
Просто "String" является крупнейшим преступник. Почти 750 мс эксклюзивного времени.
Означает ли это, что IE тратит 750 мс, просто создавая строки? Я также прочитал этот материал на Opera dev blog:
Сценарий сборки может удалить пробелы, комментарии, заменить строки с массива выборок (чтобы избежать MSIE создания объекта строки для каждого экземпляра строки - даже в условиях)
Но не более подробная информация об этом. Кто-нибудь может уточнить? Похоже, что IE должен создавать полный экземпляр String каждый раз, когда у вас есть «» в вашем коде, что может объяснить это, но я не знаю, как выглядела бы оптимизация поиска массива. BTW- мы действительно не делаем много конкатенации строк в любом месте кода.
Библиотека мы используем MooTools 1.2.4
Любые предложения будут оценены! Thx
UPDATE- Меня особенно интересует упомянутый выше отзыв о «оптимизации поиска массива». Наша библиотека большая (1 МБ), поэтому в ней много строк, как и любой другой JS-код. Но поскольку наша библиотека больше, чем большинство, эти строки фактически вызывают проблемы с производительностью.
Кроме того, кто-нибудь знает, добавляет ли материал в String.prototype каждый экземпляр медленнее?
Возможно ли иметь профиль профилирования дерева вызовов? –