Буду делиться тем что делаю.
Двойное деление vs Мозги
Запись от Герыч размещена 09.08.2009 в 00:04
Ещё одна оптимизулька от меня=)
Часто нужно сделать деление двух чисел на одно и то же число(например при нормировании вектора), т.е.
Код:
r1=n1/del; r2=n2/del;
Код:
tmp=1/del; r1=n1*tmp; r2=n2*tmp;
var t1:int; var t2:int; var count:int=1000000; var i:int; var del:Number=1079323; var n1:Number=2107; var n2:Number=2107; var r1:Number=2107; var r2:Number=2107; var tmp:Number; t1=getTimer(); for(i=0;i<count;i++) { r1=n1/del; r2=n2/del; } t1=getTimer()-t1; t2=getTimer(); for(i=0;i<count;i++) { tmp=1/del; r1=n1*tmp; r2=n2*tmp; } t2=getTimer()-t2; trace(t1,t2);
Код:
47 25
2 деления хуже, чем 1 деление и 2 умножения!)
Даже написав эту строку стало интересно, а насколько деление хуже умножения?
Проверим:
Код:
var t1:int; var t2:int; var count:int=10000000; var i:int; var del:Number=3463; var n:Number=4745; var r:Number=3634; t1=getTimer(); for(i=0;i<count;i++) { r=n/del; } t1=getTimer()-t1; t2=getTimer(); for(i=0;i<count;i++) { r=n*del; } t2=getTimer()-t2; trace(t1,t2);
Код:
220 137
Всего комментариев 2
Комментарии
08.03.2010 21:33 | |
у меня -- все логично.
Первый пример вывел 19 32 второй пример вывел 120 176 флеш cs4. |
Последние записи от Герыч
- Массив объектов или несколько массивов? (16.08.2009)
- SVN (16.08.2009)
- Box2D и магическое 30 (13.08.2009)
- Двойное деление vs Мозги (09.08.2009)
- Желе: убраны многие баги + появилась смена состояний (03.08.2009)