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

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.05.2010, 00:25
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 11  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Math.random и Math.pow если в цикле, то лучше вызывать по ссылке:
Код AS3:
var random:Function = Math.random;
var pow:Function = Math.pow;
Не значительно, но все таки есть разница.
__________________
Hell is the possibility of sanity

Старый 11.05.2010, 09:53
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 12  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
Сообщение от wvxvw
Math.random и Math.pow если в цикле, то лучше вызывать по ссылке:
Не значительно, но все таки есть разница.
В тесте я не старался повысить производительность.. совсем даже наоборот))))
За совет - спасибо! Буду знать)

2 VovkaMorkovka1:
as3-lisp: http://www.solve-et-coagula.com/?p=9
нечто кложуроподное: http://wiki.github.com/aemoncannon/las3r/

Но мне кажется это - just for lulz)

PS:2VovkaMorkovka1 - сорри -не увидел твою ссылку..
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 11.05.2010 в 10:16.
Старый 11.05.2010, 21:17
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 13  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Math.random и Math.pow если в цикле, то лучше вызывать по ссылке:
Код AS3:
var random:Function = Math.random;
var pow:Function = Math.pow;
Не значительно, но все таки есть разница.
Это откуда такое? За счет локальных переменных?

Старый 11.05.2010, 21:37
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 14  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Math.random и Math.pow если в цикле, то лучше вызывать по ссылке:
Код AS3:

var random:Function = Math.random;
var pow:Function = Math.pow;

Не значительно, но все таки есть разница.
Собираем релизную версию:
Код AS3:
var time:int = getTimer();
 
			var s:int = 0;
			for (var i:int = 0; i < 100000; i++)
			{
				s += Math.random();
			}
 
			tf.text = (getTimer() - time).toString();//52
 
 
var rnd:Function = Math.random;
 
			var time:int = getTimer();
 
			var s:int = 0;
			for (var i:int = 0; i < 100000; i++)
			{
				s += rnd();
			}
 
			tf.text = (getTimer() - time).toString();//149
Либо я чего-то не правильно делаю,
либо медленность вызова функции по ссылке губит весь прирост от пропускания операции "."

Пробуем на haXe:
Код AS3:
var time = Lib.getTimer();
 
		var s = 0.;
		for (i in 0 ... 100000)
		{
			s += Math.random();
		}
 
		tf.text = Std.string(Lib.getTimer() - time);//47
 
var rnd = Math.random;
 
		var time = Lib.getTimer();
 
		var s = 0.;
		for (i in 0 ... 100000)
		{
			s += rnd();
		}
 
		tf.text = Std.string(Lib.getTimer() - time);//107
Да.. что-то здесь не так...

Извиняюсь, лажанулся - тормоза были из-за преобразований Number-Int:
Код AS3:
var rnd:Function = Math.random;
 
			var time:int = getTimer();
 
			var s:Number = 0.;
			for (var i:int = 0; i < 100000; i++)
			{
				s += rnd();
			}
 
			tf.text = (getTimer() - time).toString();//47
Ток вот что haXe тормозит - не понятно =(


Последний раз редактировалось expl; 11.05.2010 в 21:47.
Старый 11.05.2010, 21:50
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 15  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Это откуда такое? За счет локальных переменных?
Точка тоже оператор.

Старый 11.05.2010, 22:57
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 16  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
debugline       27		|debugline       33
getlocal2			|getlocal2
getlocal1			|findpropstrict  :Math
getglobalscope			|getproperty     :Math
call    (0)			|callproperty    :random (0)
add				|add
convert_d			|convert_d
setlocal2			|setlocal2
debugline       25		|debugline       31
getlocal4			|getlocal4
increment_i			|increment_i
convert_i			|convert_i
setlocal4			|setlocal4

for (var i:int = 0; i < 10000; i++) 
{
	s += r(); // line 27
}

for (i = 0; i < 10000; i++) 
{
	s += Math.random(); // line 33
}
Как-то очень это странно... Я был уверен, что findpropstrict будет работать медленнее чем getlocal...

EDIT: Хотя, есть предположение, что findpropstrict будет работать с разной скоростью в зависимости от того, сколько у нас обозначено maxscope для функции, хотя, кто знает, вполне возможно, что это правило на getlocal тоже распространяется...

EDIT2: Жаль, что нету calllocal
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 11.05.2010 в 23:07.
Создать новую тему Ответ Часовой пояс GMT +4, время: 14:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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