簡體   English   中英

As3 swf字節碼注入

[英]As3 swf bytecode injection

我目前正在研究一種工具,它允許我們在大型as3 / Air項目(超過2000級)中查看功能是耗時的,以確定需要優化的瓶頸和功能。

實現此目的的一種方法是使用Flash Builder Profiler但它非常慢並且在1或2分鍾后崩潰。 另一種方法是手動編寫具有最重要的功能耗時信息的文件。 但這是一個手動過程,我無法涵蓋所有​​項目的功能。

所以我正在尋找一種直接在編譯的swf中注入as3字節碼的方法。 使用這樣的工具,我將在每次函數調用后注入一個日志,因此我將能夠涵蓋所有項目的功能。

有些as3 libs存在這樣的事情( AS3Commons ByteCode )但是對我的項目不起作用(我得到解析錯誤)並且as3很慢。

我看到四個選項:

  • 首先,我想的阿帕拉特 ,通過JOA艾伯特(謝謝,伙計),其中提供的工具ABC字節代碼優化,以及為這個字節碼的操作非常深刻的API。 它是用Scala編寫的,所以這也是了解這種令人敬畏的語言的好時機。

  • 此外,您可以編寫自己的工具。 ABC(ActionScript字節碼)格式以及其容器SWF文件格式都有詳細記錄 解析有趣標記的兩個文件並在字節碼中添加所需的指令可能並不太難。

  • 在一個更“簡單”的方法中,我們大多數人使用的SWF和ABC編譯器是mxmlc ,它是開源的。 您可以嘗試直接編輯編譯器代碼以執行您想要的操作。 您需要的一切都在Adobe OpenSource Flex SDK網站中

  • 作為您的問題的替代答案,您可以在mm.cfg上使用令人敬畏的AS3Trace / AS3DynamicProfile選項,而不是嘗試在SWF中注入字節碼(這將始終對全局應用程序的性能產生影響)。每個函數的完整執行日志,以及有關操作碼執行的分析信息。 更多關於這一點

總而言之,這樣的外部分析工具將是一個開源和發布到社區的一個很棒的應用程序,因為現在越來越多的“大”AS3項目正在出現。 ;)

最后,我使用python腳本將As3添加到每個動作腳本文件中。 我的工作可以在這里找到: http//code.google.com/p/as3-performances-analyzer/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM