
05.06.2006, 08:14
|
|
Регистрация: Aug 2002
Адрес: Новосибирск
Сообщений: 38
|
Вот что я вынес из своей работы со флэшем
1. Функции надо вызывать как можно реже. Вобщем, как в ассемблере. Лучше 50 строчек кода накопировать, чем сделать цикл от 1 до 50
2. Обращение к хэшу локальных переменных быстрее чем к глобальным и уж тем более выше, если используется поиск в подхэшах. Потому при передаче данных через аргумент функции (как в примере вверху) все быстрее происходит. Хэш-то получается из одной переменной состоит. Вобщем локальные переменные адресуются быстрее.
3. Лучше создавать промежуточные переменные для хранения адресов на хэш. То есть обращение типа
xxx.tr.mx.v+=xxx.tr.mx.dv
лучше привести к следующему:
var mx:Object=xxx.tr.mx;
mx.v+=mx.dv;
тем самым мы избавляемся от двух хэш-поисков. Конечно во флэше все супермегаоптимизировано, но когда речь идет о перелопачивании огромных массивов каждое бегание по индексам хэшей вызывает тормоза.
4. От длины имен переменных или функций скорость почти не зависит. Это просто best practice. Все равно все "имена" индексируются и к ним обращаются не по имени, а по цифрам индексов хэшей.
5. for in работает тормозно
6. Array.length тормозной, так что лучше сначала узнать его длину в переменную перед началом цикла
7. Жалеть память броузера зрителя и делать delete неиспользуемых объектов не нужно - все равно никто не оценит. Поэтому например если надо очистить Array - проще взять и переприсвоить ему new Array();
8. with притормаживает, потому что бегает по with-хэшу, затем по localvar-хэшу, затем по this-хэшу . Одним беганием больше. А ведь в this и with сидят ключи не только переменных, но и функций.
Мои выводы зиждятся на собственных наблюдениях и курсах программирования, где мы делали элементарные бинарные индексы
__________________
JhAZZ
Последний раз редактировалось JhAZZ; 05.06.2006 в 08:25.
|