Просмотр полной версии : Нагрузка на CPU и память
Какой из вариантов менее затратный и правильный с точки зрения программирования?
1.
private var rect:Rectangle;
public function mirrored():Rectangle {
rect = new Rectangle(0, 0, 10, 10);
return rect;
}
2.
public function mirrored():Rectangle {
var rect:Rectangle = new Rectangle(0, 0, 10, 10);
return rect;
}
3.
public function mirrored():Rectangle {
return new Rectangle(0, 0, 10, 10);
}
PS: переменная rect больше нигде не используется.
caseyryan
21.05.2015, 13:42
Третий. Почему не первый: потому что обращение к полю класса, всегда медленнее, чем обращение к локальной переменной.
Почему не второй: потому что нет смысла в данном случае сначала создавать переменную, а потом опять ее брать и возвращать, если других манипуляций с ней не планируется
Но это все такие мелочи, что стоит предавать им значение, только если производительность критически важна и нужно выжать каждую каплю
Спасибо, именно эти мелочи сейчас подчищаю и каждая капля на счету :)
Не заметите улучшения производительности именно из-за такого рода оптимизации. Разница прочувствуется только на сотнях миллионов операций. Увлекитесь лучше скаутом. Отличный профайлер.
Увлекитесь лучше скаутом. Отличный профайлер.Скаутом? Он у меня дает данные только по ролику, открытому в браузере. Не очень удобно :)
Вы просто не умеете его готовить. Это я вам как повар поварёнку говорю.
Самым оптимальным решением будет сделать пул обьектов для Rectangle. т.к. самая трудоёмкая операция в вашем коде это "new" создание обьекта. В Actionscripte нет структур, поэтому большинство, ну например, физ движков реализуют такой пул для обьектов типа Point, Vector, Rectangle и т.д.
Вы просто не умеете его готовить. Это я вам как повар поварёнку говорю.Может, шеф поделится своим коронным рецептом? :)
Можно воспользоваться связкой ScoutEnabler и Fiddler 2. Enabler'ом пройдитесь по флешке из кеша, затем фиддлером подмените ее при загрузки из вэба. Scout автоматом подцепит ее и покажет всю статистику, включая память и тайминги.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.