realmente es un tema en el que se pueden perder
horas.
Hace tiempo que, a traves de un post de una lista,
salto la "alarma" de las deficiencias en cuanto a rendimiento de la dot sintax.
Pero ahora mas que nunca, gracias a flasm, te das cuenta de el impacto que
tienen en las peliculas que usan intensivamente la programacion para
animar.
el ejemplo mas claro es con los "gotoAndStop" y
similares (control de la linea de tiempo)
la diferencia que hay entre usar
_parent.gotoAndStop(1) y tellTarget("../")gotoAndStop(1) es
abismal.
mirad la diferencia del bytecode creado por uno y
por otro:
con tell Target:
movie 'target.swf' // total frames:
1
defineMovieClip 1 // total frames:
1
frame
0
setTarget '../'
gotoFrame 0
end
end // of frame 0
end // of defineMovieClip 1
end
setTarget '../'
gotoFrame 0
end
end // of frame 0
end // of defineMovieClip 1
end
con _parent:
movie 'parent.swf' // total frames:
1
defineMovieClip 1 // total frames:
1
frame
0
push 1, 1, '_parent'
getVariable
push 'gotoAndStop'
callMethod
pop
end // of frame 0
end // of defineMovieClip 1
end
push 1, 1, '_parent'
getVariable
push 'gotoAndStop'
callMethod
pop
end // of frame 0
end // of defineMovieClip 1
end
en el ultimo caso �Entran en juego dos constantes
de texto y usa 3 lineas mas! esto tiene un impacto realmente
negativo.
Lo que seria interesante es la posibilidad de
modificar ese byteCode de una forma automatizada. Que haga lo que el compilador
de flash no hace. Y que cambie este tipo de sentencias
automaticamente.
Alguien de aqui optimiza el bytecode? Seria
interesante que nos contase como lo hace y porque. Yo me voy a poner a ello,
pero estaria bien si alguien diese unas pautas.
DDT
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, October 17, 2001 12:38
PM
Subject: [flashmaestro] �Qu� es el Bytecode y en
qu� puede ayudarnos?
> Se han recibido muchos mails acerca de la optimizaci�n de pesos, carga
> de CPU, etc�tera.
>
> En primer lugar, habr�a que explicar como funciona el flash para
> comprender un poquito mejor esto. Yo no soy programador ni ingeniero
> inform�tico sino dise�ador y es posible que no entre en profundidad
> pero espero que al menos sirva para impulsar este tema.
>
> En todos los procesos de compilaci�n se requiere de lo siguiente:
> - An�lisis L�xico: el an�lisis l�xico es traducir en tokens
> (generalmente n�meros y en el caso de Flash son n�meros, v�ase ASNative
> en threads anteriores) las instrucciones ActionScript.
>
> - An�lisis Sem�ntico y transformaciones: traduce estos tokens en
> sentencias entendibles y las transforma en c�digo _m�quina_ que
> interpretar� (se asemeja a un procesador) el Flash plug-in o Player,
> los cuales contienen la informaci�n necesaria para mostrar esto en
> pantalla.
>
> El bytecode contiene pues estos tokens.
>
> Muchas de las notaciones que nosotros usamos (ya sea dash-notation o
> dot-notation) se transforman luego en el bytecode, con lo cual dar�a
> igual usar unas que otras.
> De todas formas, existen sentencias que cambian.
>
> Esto se traduce en una posibilidad de representar un mismo token de
> forma diferente, con lo cual habr� alguna forma m�s eficiente que la
> otra.
>
> �C�mo puede servirnos esto para optimizar nuestro c�digo?
> Existe un programa que desensambla nuestro swf (bytecode) en c�digo
> _legible_ que, aunque no entendible por el Flash Player o el Plug-in,
> nos sirve para optimizar estos procesos.
>
> El paso l�gico ser�a desensamblar nuestro swf en el bytecode legible y
> luego reensamblar nuestro swf con el c�digo legible ya transformado (al
> desensamblar nuestro swf en legible se optimizan tambi�n las
> sentencias).
>
> URL donde conseguir el desensamblador/ensamblador FlasM:
> http://www.nowrap.de/flasm.html
>
> M.
>
>
>
