Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > Идеи и творения

Буду делиться тем что делаю.
Оптимизульки Простые, никому не нужные, но всё же)
Аватар для Герыч

Массив объектов или несколько массивов?

Запись от Герыч размещена 16.08.2009 в 18:51
Забавный факт я недавно обнаружил - по возможности лучше не использовать объекты.
По идее, доступ к элементу массива - достаточно медленная операция и лучше уменьшать их количество. Но оказывается в ActionScript доступ к свойству объекта намного медленней.
Вот к примеру, как лучше хранить координаты точки? в двух массивах или в массиве объектов? Ответ: в двух массивах.
Вот моё доказательство:
Код AS3:
var t1:int;
var t2:int;
var count:int=10;
var size:int=100000;
...
Старый
 
Размещено в Оптимизульки
Комментарии 0 Герыч вне форума
Аватар для Герыч

Box2D и магическое 30

Запись от Герыч размещена 13.08.2009 в 20:52
Обновил(-а) Герыч 13.08.2009 в 21:18
понемногу постигаю Box2D. Первое, что в нём раздражает - это чудо-число 30. Типа 1 метр=30 пикселей. Что за бред?
Во-первых, физ движку должно быть пофиг на то, с какими величинами он работает. В теории и flash'у тоже пофиг, но он(как мне почему-то кажется) не оч точно с Number'ами работает.
Во-вторых, для каждого созданного тела умножать в каждом шаге симуляции(которая сама по себе не быстрая операция) координаты тела на 30 - непозволительная роскошь(особенно если у тебя параллельно ...
Старый
 
Размещено в Физика , Оптимизульки
Комментарии 1 Герыч вне форума
Аватар для Герыч

Двойное деление vs Мозги

Запись от Герыч размещена 09.08.2009 в 00:04
Ещё одна оптимизулька от меня=)
Часто нужно сделать деление двух чисел на одно и то же число(например при нормировании вектора), т.е.
Код:
r1=n1/del;
r2=n2/del;
Смысл оптимизульки - посчитать множитель 1/del заранее, а потом умножать числа на этот множитель:
Код:
tmp=1/del;
r1=n1*tmp;
r2=n2*tmp;
Вот сравнение:
Код AS3:
var t1:int;
var t2:int;
var count:int=1000000;
var i:int;
var del:Number=1079323;
var
...
Старый
 
Размещено в Оптимизульки
Комментарии 2 Герыч вне форума
Аватар для Герыч

Vector быстрее Array?

Запись от Герыч размещена 01.08.2009 в 13:14
Обновил(-а) Герыч 09.08.2009 в 00:05
Любопытство не даёт спокойно жить
Провёл такие вот тесты с массивами:
Код AS3:
var v:Vector.<int>;
var a:Array;
var i:int;
var j:int;
var k:int;
var size:int=300;
var search:int=299;
/////////////////////////////
//Конструктор без указания размера
var t1=getTimer();
for(i=0;i<100000;i++)
	v=new Vector.<int>();
t1=getTimer()-t1;
var t2=getTimer();
for(i=0;i<100000;i++)
...
Старый
 
Размещено в Оптимизульки
Комментарии 1 Герыч вне форума
Аватар для Герыч

Небольшой совет по оптимизации

Запись от Герыч размещена 30.07.2009 в 20:03
Обновил(-а) Герыч 09.08.2009 в 00:07
Иногда бывает нужно разложить вектор на 2 составляющие по заданному направлению.
То есть есть нормализованный вектор (nx,ny) и надо разложить вектор (vx,vy) в сумму вектора (x1,y1) с тем же направлением, что и (nx,ny), т.е. коллинеарный вектор и перпендикулярного ему вектора (x2,y2).



Вот меня на днях осенило, что раньше я это делал глупо и есть способ чуток быстрее. Вот код, поймёте сами:
Код AS3:
var
...
Старый
 
Размещено в Оптимизульки
Комментарии 2 Герыч вне форума

 


Часовой пояс GMT +4, время: 08:56.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.