Итак, у нас есть этот продукт, и он очень медленный в IE.
Мы уже применили множество методов, рекомендованных самими ребятами из IE ( как этот и этот ), и пытаемся пожертвовать чистым кодом для производительности в критических частях, таких как DOM манипуляция.
Однако, как вы можете видеть на этом скриншоте IE Profiler ..
Просто «Строка» - самый большой преступник. Почти 750 мс эксклюзивного времени.
Значит ли это, что IE тратит 750 мс просто на создание экземпляров Strings? Я также читал эту статью в блоге Opera Dev :
Скрипт сборки может удалить пробелы,
комментарии, заменить строки на массив
поиск (чтобы MSIE не создавала
строковый объект для каждого
экземпляр строки - даже в
условия)
Но больше информации об этом нет. Кто-нибудь может уточнить? Кажется, что IE должен создавать полный экземпляр String каждый раз, когда в вашем коде есть "", что может объяснить это, но я не знаю, как будет выглядеть оптимизация поиска в массиве.
Кстати, в действительности в коде практически нет конкатенации строк.
Библиотека, которую мы используем - MooTools 1.2.4
Любые предложения будут оценены! Thx
ОБНОВЛЕНИЕ. Мне особенно интересен упомянутый выше совет по поводу "оптимизации поиска в массиве". Наша библиотека большая (1 МБ), поэтому в ней много строк, как и любой другой код JS. Но поскольку наша библиотека больше, чем большинство, эти строки на самом деле вызывают проблемы со скоростью.
Кроме того, кто-нибудь знает, замедляет ли добавление чего-либо в String.prototype каждый экземпляр?