As3 swf-bytecode injection
Ich bin momentan auf der Arbeit an einem tool, das es uns ermöglichen, Blick wich Funktion sind zeitaufwendig in einem großen as3/Air-Projekt (mehr als 2000 Klasse) zu identifizieren, die zu Engpässen und Funktionen, müssen Optimierungen.
Ein Weg dies zu erreichen ist, verwenden Sie Flash Builder, Profiler, aber es ist sehr sehr langsam und Abbruch nach 1 oder 2 Minuten.
Der andere Weg ist, um manuell eine Datei schreiben mit den wichtigsten Funktion zeitaufwändig Informationen.
Aber es ist ein manueller Prozess, und ich kann nicht decken alle Projekt-Funktionen.
So, ich bin auf der Suche nach einem Weg, um zu injizieren, as3-bytecode direkt in die kompilierte swf-Datei. Mit diesem tool, ich will Spritzen, ein Protokoll wird nach jedem Funktionsaufruf und so werde ich in der Lage sein, um alle Projekt-Funktion.
Einige as3-libs gibt so etwas ( AS3Commons ByteCode ), aber funktioniert nicht gut mit meinem Projekt (ich bekomme parsing-Fehler) und as3 langsam ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehe ich vier Möglichkeiten :
Erste, ich denke Apparat, von Joa Ebert (danke dude) bietet Werkzeuge für die ABC-bytecode-Optimierung, sowie einer sehr tiefen API für die manipulation dieser bytecode. Es ist geschrieben in Scala, so ist es auch ein guter moment zu erfahren über diese wunderbare Sprache.
Auch, können Sie schreiben Ihre eigenen tool. Die ABC (ActionScript-Bytecode) - format ist gut dokumentiert, sowie Ihre container, die SWF-Datei-format. Es könnte nicht allzu schwer zu analysieren beide Dateien für interessante tags und fügen Sie brauchten Anweisungen in den bytecode.
Mehr auf einer "einfachen" Ansatz, der SWF und der ABC-compiler die meisten von uns verwenden,
mxmlc
ist open-source. Sie könnten versuchen, Bearbeiten Sie die compiler-code direkt zu tun, was Sie wollen. Alles, was Sie brauchen, ist in der Adobe Open-Source-Flex SDK web site.Und als alternative Antwort auf deine Frage, anstatt zu versuchen, zu injizieren bytecode der SWF-Datei (die immer Auswirkungen auf die Leistungen der global application), den Sie verwenden konnten, die genial AS3Trace/AS3DynamicProfile Optionen auf mm.cfg, um eine vollständige Protokoll der Durchführung der einzelnen Funktion, sowie profiling-Informationen über die opcodes Ausführung. Mehr auf, dass hier.
Den Schluss zu, dass solche externen profiling-Instrument wird eine tolle Anwendung zu sein, open-Source und veröffentlicht, um der community, da mehr und mehr "große" AS3 Projekte kommen aus diesen Tagen. 😉
Endlich habe ich ein python-script zum hinzufügen von As3 zu jedem action-script-Dateien.
Meine Arbeit kann hier gefunden werden : http://code.google.com/p/as3-performances-analyzer/