Bagi para penggemar PHP APC, sekarang sudah tidak berlaku lagi. APC atau Alternative PHP Cache yang merupakan cache untuk PHP dengan memanfaatkan Opcode. Biasanya, kalau saya menggunakan APC ini untuk mendongkrak perfomance Magento. Namun, karena ini sudah deprecated secara resmi di situs PHP. Jadi, kemungkinan kita akan mengeluarkan tawaran migrasi ke jenis cache yang lain seperti Redis Cache ataupun Memcached.
Kenapa harus PHP APC?
Jadi kalau ditanya kenapa harus pakai PHP APC, jawabannya itu cuma satu simple. PHP APC ini salah satu model caching di PHP yang hampir configuration less. Karena, banyak penyedia hosting sudah mengisi nilai php.shm_size nya secara default. Tidak terlalu kecil atapun terlalu besar.
Cara Kerja PHP APC
Sebetulnya cara kerja PHP APC itu dengan menggunakan gabungan opcode dan name value pair, yang artinya setiap kode yang di interprestasikan akan disimpan dalam bentuk gabungan kunci dan nilai. Hal ini meliputi variabel, fungsi, kelas, objek itu akan di ingat di memory setiap perintah-perintahnya. Kemudian, setiap data yang lebih dinamis akan disimpan didalam gabungan kunci dan nilai. Sehingga intinya jika kode ada yang cocok dengan byte kunci yang ada, maka tinggal panggil nilai yang ada. Jika belum ada, maka akan dibuatkan key baru untuk nilai yang baru.
Kelemahan
Jika kodenya dalam konsep Object Oriented dan nama kelasnya ada yang sama, siap-siap APC ini akan menimbulkan ERROR yang tidak akan ada habisnya. Kecuali, dengan anda mendisable cachenya sendiri. Jadi, intinya karena ini cache dalam level kodingan maka setiap kodingannya harus benar-benar clean dan terencana. Tidak bisa asal apalagi tidak unik.
Mengatasi Kelemahannya
Sebetulnya ada banyak cara untuk mengatasi kelemahannya. Yang pertama, selalu clear cache untuk nama kelas yang sama. Kenapa demikian? karena yang namanya menggunakan CMS itu kan kodenya punya orang lain, sementara kita tidak mungkin melakukan refactoring terhadap kode CMS tersebut, karena kalau kita edit sekarang ketika ada update CMS nya sudah pasti hasil kodingan kita akan sia-sia. Oleh karena itu, lakukan clear cache hanya untuk CMS yang jarang diupdate.
Cara yang kedua itu, gunakan APC setelah buffer view. Tapi ini sangat advanced, karena kita harus bikin framework view rendering sendiri. Secara teori APC ini hanya akan melaksanakan OPCODE Caching nya pada fungsi atau method didalam view yang sudah kita seting sebelumnya. Sehingga, setiap fungsi atau metod bisa memangkan execution timenya.
Demikian artikel ini. Semoga membantu.