Mempercepat Render View pada Laravel 4.2

Sedikit sharing mengenai optimasi dari penggunaan Framework PHP Laravel, banyak isu yang menyebutkan Laravel memiliki render template HTML yang kurang cepat dengan template engine bawaan yaitu Blade.

Tidak ada masalah dengan templating Blade, yang menjadi masalah adalah seberapa cepat server dapat merender template tersebut untuk dapat disuguhkan ke pengguna (user).

Berdasarkan pengalaman dan beberapa contoh di website lain. Cara yang tepat untuk mengurangi waktu render dengan 2 (dua) metode ini :

Fungsi render()

Trik penggunaan fungsi render jarang sekali digunakan karena sudah ditangani langsung oleh laravel dengan return dari function yang kita buat.

tetapi perlu kita ingat, apakah hasil render template laravel semua dibutuhkan ?
jawabannya tidak.

Fungsi render() hanya akan mengembalikan plaintext HTML saja, dan tidak mengembalikan Package yang dipanggil oleh autoload, seperti Illuminate\Database dsb.

// Function START

$view = View::make('page.article', $data);
echo $view->render(); //output plain HTML
die();

//Function END

Laravel Cache

Penggunaan cache pada laravel sangatlah berguna jika kita sudah membicarakan optimasi sebuah halaman website.

Cache memungkinakan aplikasi tidak menjalankan perintah secara berulang.
Cache berguna untuk menyimpan hasil dari sebuah pemrosesan dari sebuah function, dalam kasus ini adalah halaman generate dari template Blade.

// Cache START
$cache_key = 'article-' . $title_url .'-cache';
$expiresAt = 10; // on minutes

// Checking view on cache
if (!\Cache::has($cache_key)) {
    $view = View::make('page.article', $data);
    echo $view->render(); //output plain HTML

    // Save render view on cache
    \Cache::put($cache_key, $view->render(), $expiresAt);
    
    die();
} else {
 
    // Get view from cache
    $view = \Cache::get($cache_key); 
    echo $view;
    die();

}
// Cache END

Hasil di atas dapat mengurangi load time dari sebuah halaman website.
yang standard dari laravel adalah >700ms menjadi 150 s/d 200ms

Semoga apa yang saya share di atas dapat sedikit membatu kesulitan anda dalam optimasi halaman website menggunakan Laravel Framework.

 

Terima kasih,

Kun Budiharta

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s