Frage

... ich auf ein paar Theorien bin zu arbeiten, aber ich bin daran interessiert andere Meinungen zu hören.

Dies wurde auf drei verschiedene Maschinen, zwei Fenster des anderen Linux verifiziert. Der Compiler verwendet wird, ist flexbuild (Vermutlich mxmlc) und Ameise mit mxmlc.

Wir hinzugefügt Code auf ein kleines Stand-alone Einzel .as Datei Projekt und die kompilierte SWF-Dateigröße ging von 20k nach unten, von 32k auf 12k auf der Linux-Box. Etwas anders auf der Windows-Box, von 27k bis 8.5k.

Mit einem benutzerdefinierten Werkzeug, das wir überprüft haben, dass beide Versionen nativer swf Kompression verwenden, keine massiven zusätzliche Metadaten, die einzige Änderung an den Ant-Build-Skript zu in eine SWC-Datei auf das Build.

Keine Entfernung von Code (keine Import Umzüge, keine variable Umzüge, nada), nur zusätzlich und ziemlich einfach an, dass ein paar Komponenten auf die Bühne hinzugefügt, aktiviert, ein paar kleine Funktionen, usw., keine Loops geändert, nichts offensichtlich, dass in weniger Code führen würde.

Mit der Quellcodeverwaltung die alte Version noch in einer größeren Datei führt zu bauen, so scheint es nicht eine Änderung in den Bibliotheken oder Compiler.

zu sein

Keine des Code wird mit Flex-Komponenten, nur gerade "flash.etc ..." Typ Importe.

Hat jemand Verhalten wie diese gesehen? Was denken Sie, könnte die Ursache sein?

War es hilfreich?

Lösung

Dieses Verhalten hat, bevor in .NET-Assemblies gesehen.

Meine Vermutung über dieses Verhalten (wo immer sie auftritt) ist, dass was auch immer hinzugefügt wird kann der Compiler mehr Optimierung tun, als es vorher haben könnte.

Warum sein, dass vielleicht würde viel detailliertere Kenntnisse über die Funktionsweise von Compiler erfordern, als ich (und warum dies geschehen kann - wenn dies tatsächlich die Ursache hier ist - in Ihrem Fall könnte wahrscheinlich nur voll wird ausreichend erklärt von einem Adobe-Ingenieure).

Andere Tipps

Ich kann nur raten, aber wenn es darum geht, Dateien diese kleine, vielleicht sind Sie die Flaute von der Festplatte Sektor zu sehen?

Meine erste Vermutung wäre, dass die erste SWF wurde im Debug-Modus kompiliert, die eine Reihe von Informationen erstellt. Ist dies nicht der Fall ist, dann würde ich vermuten, dass der zweite mit -optimize kompiliert wurde = true.

Aber wenn keiner von denen ist der Fall, es ist in der Tat sehr interessant!

Ich habe das gleiche Verhalten gesehen vor als auch. Ich nehme an, es eine Kombination von zwei Faktoren: Optimierung und Komprimierung. Es ist möglich, den neuen Code der Optimierer erlaubt Dinge auf eine andere Art und Weise zu tun (oder unintuitively, verhindert eine Art von inlining oder Schleifenentrollen, dass es vor dem tat). Ich würde sagen, dass es wahrscheinlicher ist, dass die zusätzlichen Daten vorhanden es ein besserer Kandidat für die Kompression gemacht, da alle Flash-Dateien komprimiert werden, so dass es effizienter war es zu verdichten. Beide Theorien sind nur halb Vermutungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top