Показать сообщение отдельно
Старый 15.03.2011, 22:43
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 5  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Не, в GUI-фреймворках такой подход на полную используется

А здесь не факт. Стоимость 2-х строчек вычислений может быть меньше затрат на вызов 1-го метода.
Вы производительность то тестировали?
Но, если стиль беспокоит - поробуйте посмотреть на цикл валидации компонентов во Flex/AsWing(хотя в полседнем он кривой и работает также криво)

P.S. Если хотите реальный прирост - избавтесь от вызовов методов Math, где это возможно - условная логика, как не странно, работает быстрее:
Код AS3:
if(Math.abs(_x) < 0.00000001) _x = 0;
if(Math.abs(_y) < 0.00000001) _y = 0;
Можно написать так:
Код AS3:
if((_x > 0 ? x : -x) < 0.00000001) _x = 0;
if((_y > 0 ? y : -y) < 0.00000001) _y = 0;
Все квадратны - заменить на x * x, единственное взятие корня Вы не сможете внятно ускорить без прямого обращения к памяти (что только в алхимии/haXe) или без обработки каким-нть "аппаратом" скомпиленного кода.

P.S 2. Обычно советуют наоборот - оптимизировать на высоком уровне - что Вы и пытаетесь делать - но здесь, ИМХО, не тот случай (пока тесты производительности не докажут обратное)


Последний раз редактировалось expl; 15.03.2011 в 22:52.