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

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

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

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

最佳答案

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

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

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

10-07 20:09