【问题标题】:As3 swf bytecode injectionAs3 swf 字节码注入
【发布时间】:2023-04-10 18:41:01
【问题描述】:

我目前正在开发一种工具,让我们可以查看大型 as3/Air 项目(超过 2000 个类)中哪些功能耗时,以识别瓶颈和需要优化的功能。

实现此目的的一种方法是使用 Flash Builder Profiler,但它非常缓慢,并且会在 1 或 2 分钟后崩溃。 另一种方法是手动编写包含最重要功能耗时信息的文件。 但这是一个手动过程,我无法涵盖所有​​项目的功能。

所以我正在寻找一种将 as3 字节码直接注入已编译 swf 的方法。有了这样的工具,我会在每次函数调用后注入一个日志,这样我就可以覆盖项目的所有功能了。

存在一些 as3 库来做这样的事情 (AS3Commons ByteCode) 但不适用于我的项目(我得到解析错误)并且 as3 很慢。

【问题讨论】:

    标签: actionscript-3 flash bytecode code-injection


    【解决方案1】:

    我看到四个选项:

      1234563它是用 Scala 编写的,所以现在也是了解这种很棒的语言的好时机。
    • 另外,您可以编写自己的工具。 ABC(ActionScript 字节码)格式为well documented,以及它的容器SWF file format。解析两个文件以获取有趣的标签并在字节码中添加所需的指令可能并不难。

    • 在更“简单”的方法中,我们大多数人使用的 SWF 和 ABC 编译器 mxmlc 是开源的。您可以尝试直接编辑编译器代码以执行您想要的操作。你需要的一切都在Adobe OpenSource Flex SDK web site。

    • 作为您问题的替代答案,您可以在 SWF 中使用令人敬畏的 AS3Trace/AS3DynamicProfile 选项,而不是尝试在 SWF 中注入字节码mm.cfg,拥有每个函数执行的完整日志,以及有关操作码执行的分析信息。更多关于 here.

    总之,这样的外部分析工具将是一个很棒的应用程序,可以开源并发布到社区,因为现在越来越多的“大型”AS3 项目出现了。 ;)

    【讨论】:

    【解决方案2】:

    最后,我使用 python 脚本将 As3 添加到每个动作脚本文件中。 我的作品可以在这里找到:http://code.google.com/p/as3-performances-analyzer/

    【讨论】:

      猜你喜欢
      • 2012-09-27
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      • 2012-01-03
      相关资源
      最近更新 更多