Sim*_*aud 3 flash bytecode code-injection actionscript-3
我目前正在研究一种工具,它允许我们在大型as3/Air项目(超过2000级)中查看功能是耗时的,以确定需要优化的瓶颈和功能.
实现此目的的一种方法是使用Flash Builder Profiler但它非常慢并且在1或2分钟后崩溃.另一种方法是手动编写具有最重要的功能耗时信息的文件.但这是一个手动过程,我无法涵盖所有项目的功能.
所以我正在寻找一种直接在编译的swf中注入as3字节码的方法.使用这样的工具,我将在每次函数调用后注入一个日志,因此我将能够涵盖所有项目的功能.
有些as3 libs存在这样的事情(AS3Commons ByteCode)但是对我的项目不起作用(我得到解析错误)并且as3很慢.
Tyn*_*Tyn 10
我看到四个选项:
首先,我想的阿帕拉特,通过JOA艾伯特(谢谢,伙计),其中提供的工具ABC字节代码优化,以及为这个字节码的操作非常深刻的API.它是用Scala编写的,所以这也是了解这种令人敬畏的语言的好时机.
此外,您可以编写自己的工具.ABC(ActionScript字节码)格式以及其容器SWF文件格式都有详细记录.解析有趣标记的两个文件并在字节码中添加所需的指令可能并不太难.
在一个更"简单"的方法中,我们大多数人使用的SWF和ABC编译器都是mxmlc开源的.您可以尝试直接编辑编译器代码以执行您想要的操作.您需要的一切都在Adobe OpenSource Flex SDK网站中.
作为您的问题的替代答案,您可以在mm.cfg上使用令人敬畏的AS3Trace/AS3DynamicProfile选项,而不是尝试在SWF中注入字节码(这将始终对全局应用程序的性能产生影响).每个函数的完整执行日志,以及有关操作码执行的分析信息.更多关于这一点.
总而言之,这样的外部分析工具将是一个开源和发布到社区的一个很棒的应用程序,因为现在越来越多的"大"AS3项目正在出现.;)