![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
Думаю в шестерке тоже самое будет.....
хотя все равно будет быстрее работать. |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
Ускорение за счет улучшения ASnative функций
![]() Во всяком случае в бете есть и ASnative и ASSetPropFlags.... мне во всяком случае такая архитектура вполне устраивает. |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
Цитата:
но все равно в ней есть некоторые плюсы... |
|
|||||
|
F1
Регистрация: Apr 2000
Сообщений: 3,620
|
Вопрос: Работает ли плеер с АСНейтев кодами быстрее чем со стандартными операторами?
ДА или НЕТ? ЗЫ Уклончивые ответы я уже слышал, нужна конкретика ![]()
__________________
+_+ |
|
|||||
|
F1
Регистрация: Apr 2000
Сообщений: 3,620
|
ЗЫЫ
почему спрашиваю, да потому что слышал разные ответы, но сам уверен что этот интерпритатор при работе с чистыми вызовами АСНеитив, без операторов, должен работать быстрее. Может не заметно, но при мега расчетах трехмера(предположим) разница должна быть ощютимой. ИМХО
__________________
+_+ |
|
|||||
|
Ales, хм, как бы это.... ну вот смотри:
x=function() { // some code } y=x что быстрее выполнится x или y? правильно без разницы, так как функция одна и та же или x=function() { //some code } y=function() { //some code some_var=x(some_args); //some code } в этом случае явно быстрее выполнится функция у. мы сейчас говорим о разнице в доли милесекунд. но, вот опять пример: x=ASNative(200,0)(-1) // функция ака Math.abs тут смотри сначала выполнится ф-ия ASNative, а потом результирующая ф-ия, то есть та которую вернет ASNative. далее x=Math.abs(-1), тут тоже функция выполнится не сразу, сперва будет проинициализирован обьект Math. поэтому сравнивать нужно "чистые" функции: x=Math.abs y=ASNative(200,0) так, вот что быстрее? x или y есть простой способ проверить: arg=-1
func1=Math.abs
func2=ASNative(200,0);
x=getTimer();
for(i=1;i<1000;i++) {
g=Math.abs(arg);
}
x=getTimer()-x;
trace("Math.abs: "+x);
x=getTimer();
for(i=1;i<1000;i++) {
g=ASNAtive(200,0)(arg);
}
x=getTimer()-x;
trace("ASNative(200,0): "+x);
x=getTimer();
for(i=1;i<1000;i++) {
g=func1(arg);
}
x=getTimer()-x;
trace("func1: "+x);
x=getTimer();
for(i=1;i<1000;i++) {
g=func2(arg);
}
x=getTimer()-x;
trace("func2: "+x);
но это для функция являющихся прямым аналогом ASNative(x,x) пример обратный: function Number (v) {
v = ASnative(3, 1)(v);
if (!ASNew()) {
return (v);
}
this.value = v;
ASSetPropFlags(this, null, 7);
}
повторюсь, что мы говорим о очень малых разницах в выполнении. |
|
|||||
|
2john судя по всему макромедия и не собирается отступать от такой конструкции, я думаю что улучшения скорости выполнения кода будут достигнут за счет модернизации интерпритатора байткода :)
|
|
|||||
|
да кстати ASNew тоже полезная штучка :) очень удобно если надо создать конструктор и функцию с одним именем.
|
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
2ish
да полезная функция факт... но думаю лучше ее не пользовать, чтобы не делать лишних действий, функции - функциево, конструктору - конструкторово ![]() в варианте с Number и String - это понятно, либо объект либо литерал, а так..... второй момент, насколько я посмотрел код инициализации, ссылки на методы в большенстве определяются сразу (при начале работы плейера), поэтому как бы методы имеют прямые ссылки и к ASnative уже не обращаются, поэтому и ускорения-замедления никак не может быть... Последний раз редактировалось john; 27.01.2002 в 16:51. |
![]() |
Часовой пояс GMT +4, время: 09:52. |
|
|
« Предыдущая тема | Следующая тема » |
|
|