Pada informasi release Zend Framework versi 1.10.2 disebutkan bahwa ke depan (versi 2.0), Zend Framework akan menghilangkan require_once. Apakah penghilangan ini karena alasan performa ataukah karena penggunaan namespace?
Jauh sebelum keputusan ini dilakukan, Yii Framework sudah melakukan hal yang sama. Dalam Yii, pustaka dimuat saat pertama kali dibutuhkan dengan memanfaatkan fitur autoload. Yii mengganti require_once dengan Yii::import(), dimana Yii::import() ini tidak benar-benar memuat pustaka, melainkan hanya mendaftarkan pustaka yang ada dalam variable Yii::$_classes[]. Kemudian Yii::$_classes[] akan dimanfaatkan oleh Yii::autoload() yang sebelumnya sudah didaftarkan dengan fungsi spl_autoload_register().
Kita berharap keputusan pengembang Zend Framework ini akan menjadikan Zend Framework lebih baik lagi dari sisi performa.
Sebenarnya perbedaan kecepatan Zend Framework dengan Yii tidak karena masalah ini (require_once) saja. Tetapi juga disebabkan manajemen error. Demi kesempurnaan manajemen error, Zend selalu membuat kelas Exception di setiap direktori pustakanya walaupun hanya berisi deklarasi kelas saja. Ini artinya pemanggilan kelas Exception yang berada di direkori terdalam akan memanggil kelas-kelas yang berada di direktori sebelah luarnya. Sementara Yii hanya menggunakan beberapa kelas Exception saja.
Keputusan Zend (dari kode yang saya amati) untuk menggunakan satu file dalam menyimpan satu kelas juga berpengaruh tentu saja, karena berdampak pada lebih-banyaknya file yang dimuat. Ini memang konsekuensi dari class naming convention. Yii melakukan lebih dramatis untuk pustaka YiiLite, dimana semua kelas ditaruh dalam satu file dan semua komentar dihilangkan.
Demikian tiga sebab yang membuat Yii lebih cepat dibanding Zend Framework. (Jika Anda mengetahui sebab-sebab lain, silahkan saya diberitahu, OK?. Ini pelajaran baik bagi kita supaya lebih faham bagaimana membuat aplikasi (berbasis Zend) menjadi lebih cepat. Silahkan baca Zend Framework Performance Guide untuk keterangan lebih lanjut.
Tetapi ingat, kecepatan bukan satu-satunya isu apakah sebuah sistem lebih baik atau tidak. Banyak kasus manajemen proyek, manajemen error, kemuadahan pemeliharaan, kemudahan penambahan fitur menjadi utama. Sementara kecepatan dapat diatasi seiring dengan semakin baikknya kinerja hardware sementara harga semakin turun.
Agus Suhartono

One Response to Mengapa Yii Lebih Cepat Dibanding Zend Framework?
Trackbacks/Pingbacks