Sebelumnya di blog ini sudah pernah di-posting artikel tentang Just in Time Compiler sebagai salah satu cara untuk meningkatkan performance (kecepatan) eksekusi kode Actionscript 3.0 oleh Flash Player 9 (baca di Bookmark April 19 2007).
Masih ada mekanisme lain yang membantu proses peningkatan performance tersebut, yaitu Traits.
Konsep Traits diciptakan di Actionscript 3.0 untuk menanggulangi permasalahan yang kerap terjadi di Actionscript versi sebelumnya.
Pada Actionscript 1.0 / 2.0 proses pencarian nama suatu object merupakan sesuatu yang melelahkan dan memakan waktu bagi Flash Player terutama pencarian object termasuk dengan property-nya (termasuk dengan semua variable, function dan methode yang terdapat di object tersebut) dari dalam suatu framework yang mempunyai package raksasa yang terdiri dari banyak object class.
Sedangkan di Actionscript 3.0 proses tersebut berlangsung lebih efisien dan lebih hemat waktu karena segala properties yang berasal dari superclass (inherited) telah di-copy-kan kedalam traits yang terdapat disetiap subclass. Pemahaman traits itu sendiri sepertinya akan terasa abstract bagi setiap programmer. Sekilas traits lebih mirip sebagai properties, tetapi tidak akan dapat diakses/ viable di daftar properties suatu object class.
Traits di AVM 2 (virtual machine untuk Flash Player 9 - AS 3.0) berfungsi untuk menyediakan segala informasi detail tentang layout dan isi dari suatu class. Dengan informasi tersebut AVM 2 dapat mengurangi waktu eksekusi kode secara signifikan karena dapat menginstruksikan langsung suatu properties/ methode object ke machine tanpa menghabiskan waktu mencari ulang representasi superclass yang mewariskan properties tersebut.
Kehadiran Traits ini terasa dengan peningkatan performance dan pengurangan pemakaian memory (memory usage) Flash Player 9. Dan "penampakan" suatu object di memory system akan lebih kecil secara nyata dibanding dengan "penampakan" object serupa di versi terdahulu dari Actionscript. Contohnya : jika suatu class dideklarasikan secara non dynamic (sealed) maka instance dari class tersebut tentu tidak memerlukan hash table sebagai penampung properties yang ditambahkan secara dynamic, sehingga akan lebih sedikit menampung pointer ke traits yang ada di object tersebut. Hasilnya sebagai perbandingan, bila di Actionscript 2.0 object tersebut memerlukan 200 bytes untuk me-representasi-kan dirinya maka cukup 20 bytes saja yang diperlukan di Actionscript 3.0 untuk melakukan hal yang sama.
Catatan :
No comments:
Post a Comment