latar belakang kelahiran
Kompiler Flash Adobe (ASC, ActionScript Compiler) kinerjanya terlalu "kemarin", dan mesin virtual Flash masih memiliki banyak ruang untuk peningkatan kinerja. Flash sering diperlakukan sebagai mainan atau bercanda disebut babi CPU. Secara umum, kami jarang mengoptimalkan SWF secara manual. Dalam banyak kasus, SWF dapat berjalan dengan baik, tetapi jika ukuran file SWF terlalu besar, waktu pemuatan terlalu lama, atau waktu eksekusi kode terlalu lama, menyebabkan frame. rate menjadi terlalu tinggi. Jika rendah, kita perlu mempertimbangkan untuk mengoptimalkan SWF, seperti menyederhanakan kode dan mengompresi sumber daya statis (gambar, video, dll.). Namun, peningkatan kinerja yang dihasilkan oleh optimasi manual sangat terbatas. Lebih banyak tugas optimasi harus diserahkan kepada kompiler. Untungnya, kerangka Apparat dapat membantu kita membebaskan diri dari mimpi buruk optimasi manual. Tidak hanya itu, semua SWF yang dioptimalkan di masa depan dapat melakukannya dioptimalkan darinya. Joa Ebert, penulis Apparat, memiliki wawasan mendalam dalam bidang optimalisasi kinerja Flash. Pada konferensi FlashAndTheCity tahun ini, karya luar biasa joa memberinya dua penghargaan : "Pengembang Flash Paling Jenius pada tahun 2010" dan "Kontributor Paling Luar Biasa pada tahun 2010". " Hadiah utama.
Membangun lingkungan
Kerangka kerja Apparat ditulis melalui Scale. Sebelum mempraktikkannya, Anda perlu menginstal Scala 2.8.0 dan Java 1.6. Instalasi 7-zip bersifat opsional. Setelah menyiapkan lingkungan operasi dasar ini (yang perlu ditambahkan ke variabel lingkungan PATH), paket instalasi terbaru (saat ini 1.0RC8) dapat diunduh dari Google Code . Setelah didownload, ekstrak ke folder baru. File yang disertakan adalah:
Apparat menyediakan banyak alat baris perintah, seperti tdsi, stripper, peredam, dll., serta beberapa API ActionScript yang sangat khusus (ada dalam file SWC). Selanjutnya, mari kita lihat bagaimana Apparat mempercepat Flash.
Optimalkan bytecode
Fungsi inti Apparat adalah TAAS (Three Address ActionScript Compiler). TAAS tidak akan mengubah baris ActionScript apa pun. Ia dapat memperoleh peningkatan kinerja yang signifikan hanya dengan menggunakan teknik pengoptimalan biasa. Berbeda dari ASC kompiler Adobe, Apparat menganalisis, mengatur ulang, dan menyusun kembali file SWF dan SWC yang dikompilasi.
Bytecode di mesin virtual Flash AVM didasarkan pada tumpukan. Struktur ini sulit untuk dioptimalkan. Apparat pertama-tama mengubah bytecode berbasis tumpukan menjadi CFG (Control Flow Graph), dan kemudian mengubahnya menjadi TAC tanpa tumpukan melalui CFG Kode Alamat) , yaitu TAAS (Tiga Alamat ActionScript).
Dengan TAC/TAAS, bytecode Flash dapat dioptimalkan ulang berdasarkan teknik optimasi kompiler, seperti ekspansi inline , propagasi salinan , pelipatan konstan , penghapusan kode mati , dll.
Apparat menyediakan beberapa file SWC yang berguna dengan API yang lebih efisien, dan bahkan menyertakan API Alkimia yang belum tersedia di ActionScript. Setelah SWF yang menggunakan API ini diproses oleh Apparat, efisiensi eksekusi akan sangat meningkat. Prinsipnya adalah Apparat melakukan optimasi inline pada kode yang sesuai. Format perintah untuk mengoptimalkan bytecode adalah:
tdsi -i masukan.swf -o keluaran.swf
Sumber: Tim UED Koubei.com