apache-flex - 为什么 Adob​​e Alchemy Tool 创建的闪存字节代码运行速度比 flex 编译器更快?

标签 apache-flex flash flex3 adobe alchemy

我已经看到了一些关于此的博客条目,并与我的队友进行了一两次讨论,但我想看看堆栈溢出社区的想法。

那么为什么Adobe Alchemy Tool创建运行速度比 flex 编译器快得多的闪存字节代码?

另外,flex 编译器何时才能获得类似的性能提升?

它是否需要程序员特定使用特殊数组或类似性质的东西才能获得相同的性能?

最佳答案

Alchemy 是 LLVM 的一个实现在 ActionScript 中。简单地说,它是一个使用 ByteArray 作为内存存储的虚拟机。

Alchemy 编译的 C 代码可以直接访问“内存”(通过 Flash 10 中引入的一些操作码),允许它在空闲时将内存分块(包括指向对象的指针)。这会导致一些(但绝不是全部)代码运行得更快。由于 Alchemy 是在 AVM(另一个 VM)之上运行的 VM,因此某些类型的代码实际上在 Alchemy 中运行速度较慢。

此外,Alchemy 没有对 ActionScript 类的 native 访问权限,必须通过互操作类访问它们。

关于apache-flex - 为什么 Adob​​e Alchemy Tool 创建的闪存字节代码运行速度比 flex 编译器更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1869969/

相关文章:

apache-flex - Facebook Graph API 和 friend 的电子邮件

apache-flex - 具有自定义命名空间的 ActionScript 接口(interface)

apache-flex - Flex : Render an unrealized UIComponent to BitmapData?

actionscript-3 - 如何构建与从 Flex 3.5B 到 Flex 4.6 的客户端应用程序兼容的 Flex 库?

apache-flex - Flex 中的生产日志记录

flash - Silverlight 4 与 Flash

actionscript-3 - Flex - 安全沙箱违规 - 错误#2048

ruby - Selenium IDE 并告诉它记录操作

apache-flex - 是否有任何命令可以从命令行暂停、停止和关闭 vlc 播放器?

php - Flex 中的特殊字符