|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
МЕГАФЛЭШЕР
Регистрация: 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, время: 21:40. |
|
« Предыдущая тема | Следующая тема » |
|
|