Flash编译器/解释器优化

时间:2009-03-27 18:18:27

标签: actionscript-3 flash optimization

我最近开始使用ActionScript 3 / Flash 9,来自“真正的”编程背景,我对它到底最终会出现什么样的机器代码感到有点好奇。我想知道编译器在将SWF与优化标志放在一起时所做的优化(如循环展开,const值解析为立即等),以及解释器将生成什么样的机器代码(将矩阵乘法使用有能力的处理器上的SSE指令,它使用的FPU模式,自动对齐的数据结构等。

是否有人有关于此文档的任何链接?谷歌只是不断向我发送第三方产品。

4 个答案:

答案 0 :(得分:2)

我最近检查过flash编译器。太奇妙了! 这是简单的类代码:

    var A : Number = 0.0;
    A = A*2*4;

这里是反汇编的代码:

5       pushdouble      0
7       convert_d
8       setlocal1
9       getlocal1
10      pushbyte        2
12      multiply
13      pushbyte        4
15      multiply
16      convert_d
17      setlocal1

哇!在21世纪,我们有1980年级的编译器。

答案 1 :(得分:1)

我会开始查看Nicolas Cannasse的blogwork MTASC AS2编译器和Haxe背后的人...)以及所有相关内容

另外 - 但有点肤浅 - 最近在Peter Elst博客上有一个非常有趣的广播:

http://www.peterelst.com/blog/2009/03/10/flash-player-internals/

答案 2 :(得分:1)

自AS3以来,there is new virtual machine which uses JIT

另外,我不是许可证专家,但如果我没记错的话,Flex SDK compiler也是开源的。

答案 3 :(得分:-2)

我可能错了,但我的印象是没有编译Actionscript,而是像php一样解释它。唯一的区别是Actionscript与其他资产一起封装成.swf。我在玩一些反编译器时已经看到你可以将代码视为某种字节代码,但我不会以任何方式将它与机器代码进行比较..

如果您正在寻求性能提升,我建议您查看Alchemy。我从来没有使用它,但是这个实验性的Adobe产品应该允许你将C / C ++代码移植到Flash Player上,而且性能损失最小。