![]() |
|
||||||||||
|
|||||
|
Создал эту тему просто, чтобы поделиться опытом своих заблуждений)
Сам код для потимизации stage3d оставлю, меня заинтересовало то, что он рекомендовал избегать использования for each циклов, и заменять их на for var i:int ... Но мои замеры показали, что разница в скорости между этими циклами составляет почти 3 раза! Причем совсем не в пользу вторых. Тест содержит ошибку, ответ здесь Вот мой тест на 10 миллионах объектов // создаем 10 миллионов объектов с одним свойством var array:Array = [] for (var i:int = 0; i < 10000000; i++) { array.push( { t: 1 } ); } var length:int = array.length; var obj:Object = null; var time:int = getTimer(); for (i = 0; i < length; i++) { obj = array[i]; obj.t = 0; } trace("FOR i", getTimer() - time); // 1554 time = getTimer(); for each (obj in array) { obj.t = 0; } trace("FOR EACH", getTimer() - time); // 671 Вот еще пример public function MathCrap() { var number:Number = -14; var i:int = 0; var result:Number = 0; var time:int = 0; time = getTimer(); for (i = 0; i < 10000000; i++) { result = Math.abs(number); } trace("Math.abs()", getTimer() - time); time = getTimer(); for (i = 0; i < 10000000; i++) { result = abs(number); } trace("Inline abs", getTimer() - time); trace("CEIL >>>"); number = 1.5; time = getTimer(); for (i = 0; i < 10000000; i++) { result = Math.ceil(number); } trace("Math.ceil()", getTimer() - time); time = getTimer(); for (i = 0; i < 10000000; i++) { result = ceil(number); } trace("Inline ceil", getTimer() - time); } [Inline] public static function abs(value:Number):Number { return value > 0 ? value : -value; } [Inline] public static function ceil(value:Number):int { return int(value) + 1; } То есть совсем незначительная разница, хотя я расчитывал увидеть цифры раза в 2, а то и в 3 различающиеся. Видимо Адоби хорошо поработали над оптимизацией кода в ASC 2.0
__________________
Ко мне можно и нужно обращаться на ты) Последний раз редактировалось caseyryan; 26.02.2016 в 09:15. |
![]() |
Часовой пояс GMT +4, время: 23:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|