Ever heard of hiphop? yeah, but this one is for PHP
.
Dulu saya pernah menulis tentang bagaimana facebook dapat menangani berjuta-juta usernya, dan salah satu alat yang digunakan oleh Facebook adalah HipHop for PHP, sebuah tool dahsyat yang dikembangkan oleh Facebook yang kemudian secara baik hati dilempar menjadi sebuah tool Open Source, entah apakah ada maksud tertentu dari facebook dengan melempar HipHop for PHP ini agar dapat dimanfaatkan semua orang, entah itu salah satu upaya untuk mencegah kepunahan PHP, atau mungkin ada alasan lain. Entahlah, saya disini bukan untuk membahas itu.
HipHop for PHP ( untuk selanjutnya saya sebut HPHP karena kepanjangan kalo nulis HipHop for PHP setiap kali
) secara programmatically (opo iki) mengubah program PHP kita menjadi sebuah kode C++ yang sudah highly optimize, kemudian menggunakan g++ untuk melakukan compiling pada kode ini. Skemanya kurang lebih seperti ini:
PHP –(HPHP)–> C++ –(g++)–> WebKita
Dalam penggunaannya, konon HPHP ini bisa menghemat CPU Usage dari sebuah Web Server sampai 50%! Gilee..
Udah pernah ngrasain kan betapa cepatnya kita kalo ngebuka webnya facebook? Melakukan Scaling pada Facebook merupakan salah satu hal yang menurut saya dilakukan secara fantastis oleh orang-orang Facebook, karena…yah..bayangkan saja, hampir setiap kita melihat home page kita, facebook akan melakukan query untuk setiap update yang dilakukan teman-teman Anda, kemudian melakukan filtering dari hasilnya untuk disesuaikan dengan privacy setting, kemudian mengisi halaman kita dengan komen, foto, jumlah likes pada suatu post, dan masih banyak lagi. Kesemuanya itu dilakukan hanya dalam hitungan detik dan hampir secara bersamaan dilakukan oleh beberapa ribu user (atau mungkin lebih) diseluruh dunia.
Ada sedikit quote ni dari makernya:
“HipHop allows us to write the logic that does the final page assembly in PHP and iterate it quickly while relying on custom back-end services in C++, Erlang, Java, or Python to service the News Feed, search, Chat, and other core parts of the site.”
Pada males mbaca kan? nah, Kira-kira kalo di google translate gini deh:
“Hiphop memungkinkan kita untuk menulis logika yang melakukan pembuatan final page dalam PHP dan melakukan iterasi hal tersebut dengan cepat sambil mengandalkan kustom back-end layanan di C + +, Erlang, Java, atau Python untuk layanan News Feed, pencarian, Chat, dan inti bagian lain dari situs.”
Dalam pengembangan HPHP ini ada beberapa fungsi yang perlu dihilangkan demi meningkatkan performa, fungsi nggak penting sih, seperti eval(). Tidak banyak digunakan juga, jadi nggak usah dibahas deh disini.
Ada yang nglakuin tes performance dari hiphop ni,
kalo mau lihat bisa dilihat disini http://hyvesblogonproductdevelopment.blogspot.com/2011_10_01_archive.html
Err..udah deh itu aja.
Thanks for reading


