12 Tips Untuk Mengoptimalkan Kinerja Laravel - CRUDPRO

12 Tips Untuk Mengoptimalkan Kinerja Laravel

Seiring berjalannya waktu, kerangka Laravel sudah jadi benar-benar terkenal untuk pemrogram situs web. Khususnya mereka yang menekuni di dunia pemrograman backend.

Laravel telah digunakan untuk membuat beragam jenis mekanisme, dan program berbasis website. Dimulai dari yang simpel seperti Todo List, sampai program berbasiskan ERP.

Mengapa Proses Usaha Harus Fokus pada Optimalisasi Performa Laravel ?

Susunan dari framework Laravel, dan libraries atau package yang sama-sama berkaitan memberi kenyamanan untuk beberapa developer untuk membikin beragam fitur dengan usaha yang minim.

Performnce dan Optimization ialah dua aspek kunci untuk tentukan kelancaran satu Usaha Program. Dalam masalah ini, pastikan performa dari program Laravel ialah kemampuan yang penting yang perlu dimiliki setiap programmer saat mengerjakan proyek dari klien. Karena Laravel kerap kali dipakai untuk membuat Mekanisme berbasis Informasi, performa Laravel benar-benar punya pengaruh pada kelancaran sebuah sistem program. Dalam beberapa kasus, mekanisme management info yang memberi support ambil keputusan ke susunan management harus cepat dan bekerja dengan performa tinggi setiap saat.

Panduan to Improve Laravel Performnce

  1. Config caching
  2. Routes caching
  3. Hapus servis yang tidak kepakai
  4. Classmap optimization
  5. Optimizing the composer autoload
  6. Batasi Pemakaian banyak plugins
  7. JIT Compiler
  8. Pilih cache and sesi driver yang bisa lebih cepat
  9. Membuat Cache dari Hasil Query
  10. Memakai "Eager Loading" untuk ambil data
  11. Precompile Assets
  12. Memakai CDN untuk static assets.
  13. Asset Bundel
  14. Asset Minifying
  15. Jalankan PHP versus terkini
  16. Memakai Laravel Debugbar
  17. General Performnce Tuning Panduan for Laravel :
    • Laravel page speed composer package
    • Up-date Provider Detils
    • Publish the package
    • Adding middleware for situs akses
    • View page detils
  18. Memakai Stack Untuk Tingkatkan Perform
  19. Ringkasan

1. Config Caching

Laravel menyediakan command yang bagus sekali, Artisan cache config ini benar-benar menolong untuk tingkatkan perform. Untuk memakainya, dapat jalankan perintah:

php artisan config:cache

Saat menjalankannya pertama kalinya, tidak kelihatan dampaknya. Bila kamu akan me-refresh config, lakukan perintah di atas sekali lagi. Untuk hapus cache, dapat jalankan perintah berikut ini:

php artisan config:clear

2. Route Caching

Route caching merupakan feature optimalisasi yang penting. Khususnya, untuk program yang banyak memiliki config dan route. Cache dari route ini yakni sebuah array yang menolong percepat perform dari Laravel, karena perform yang bisa lebih cepat dalam berisi sebuah array. Untuk menjalankannya lakukan perintah:

php artisan route:cache

! Harus diingat untuk jalankan perintah ini, setiap ada peralihan di config atau file route dari Laravel. Kebalikannya, Laravel akan berisi peralihan yang paling baru. Untuk hapus cache, pakai perintah berikut ini:

php artisan route:clear

3. Hapus servis yang tidak kepakai

Untuk optimalisasi perform dari Laravel, salah satunya poin keutamaan ialah tidak me-load semua servis dari config. Oleh karena itu, Selalu ingat untuk menonaktifkan servis dalam file config yang tidak kepakai.

Dapat dipertambah comment supaya tidak lupa.

4. Classmap Optimization

Bahkan juga, program Laravel tingkat lanjut sekalinya mempunyai telah mempunyai file yang cukup banyak karena Laravel memiliki ‘habit' atau rutinitas memangggil semua file yang ter ‘include' dalam sebuah request. Ada sebuah trick simpel untuk mengikutkan semua file yang ter'include' di dalam sebuah file. Maka untuk semuanya request, cuman akan berisi satu file saja. Untuk menjalankannya pakai perintah ini:

php artisan optimize --force

5. Composer Optimize Autoload

Gagasan yang bagus, untuk men'scan' program Laravel kita memakai Composer dan membuat suatu rekanan satu-ke-satu dari semua class dan file yang ada. Pakai perintah berikut ini:

composer dumpautoload -o

6. Batasi Library Yang Ada

Hal yang bagus dari Laravel ialah jumlahnya library yang bisa diikutkan pada suatu program. Walau ini ialah hal yang bagus, segi negatifnya ialah tingkat kendala yang tinggi yang dirasakan program dan perform keseluruhnya yang melamban.

Berikut penyebabnya kenapa penting untuk mengevaluasi semua library yang diundang lagi dalam kode. Bila Anda berasa dapat melakukan tanpa library, hapus dari config/app.php untuk percepat program Laravel. Tempat penting yang lain untuk disaksikan ialah composer.json.

7. JIT Compiler

Mengartikan code PHP ke bytecode dan menyelesaikannya ialah proses resource-intensive. Berikut penyebabnya kenapa mediator seperti Zend Engine dibutuhkan untuk jalankan subroutine C. Proses ini harus diulangi setiap program digerakkan. Untuk memotong waktu, karena itu proses ini harus diulangi sekali saja. Disini kompiler Just-in-Time (JIT) bisa dibuktikan benar-benar berguna. Untuk program Laravel, kompiler JIT yang direferensikan ialah HHVM oleh Facebook.

8. Pilih Cache dan Sesi Driver yang bisa lebih cepat

Untuk setting performa Laravel yang maksimal, jalan terbaik ialah simpan sisi cache dan sesi di RAM. Saya yakin cache dan driver session paling cepat untuk performa Laravel ialah Memcached.

Penataan driver untuk mengganti driver session umumnya berada di app/config/session.php. Demikian pula, kunci driver untuk mengganti driver cache berada di app/config/cache.php

9. Membuat Cache hasil dari Query

Caching hasil kueri yang kerap digerakkan ialah langkah yang baik untuk tingkatkan performa Laravel. Untuk ini, saya mereferensikan fungction remember(), yang dipakai seperti berikut:

$posts = Cache::remember('index.posts', 30, function() {
  return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();
});

10. Memakai "Eager Loading" untuk tiap Data

Laravel tawarkan ORM yang baik untuk tangani database. Yang dikenali sebagai Eloquent, dia membuat mode yang mengabstraksi tabel database dari developer lain. Memakai susunan simpel, developer bisa memakai Eloquent untuk tangani semua operasi CRUD di PHP. Saat Eloquent memakai eager loading, dia ambil semua mode object berkaitan sebagai tanggapan pada initial query. Ini menambahkan tanggapan program. Silahkan kita bandingkan lazy loadingdan eager loading:

//asumsi di table product_detail ada 16 row//Lazy loading
$products = Product::all();
foreach ($products as $product) {
   echo $product->productDetail->name;
}
// total query 16
// tabel product : 1
SELECT * FROM product;
// tabel product detail : 15
SELECT * FROM product_detail WHERE 'product'.'id' = ? limit 1;
SELECT * FROM product_detail WHERE 'product'.'id' = ? limit 1;
SELECT * FROM product_detail WHERE 'product'.'id' = ? limit 1;
....//Eager Loading
$products = Product::with([‘productDetail’])->get();
foreach ($products as $product) {
   echo $product->productDetail->name;
}
// total query 2
// tabel product : 1
SELECT * FROM product;
// tabel product detail : 1
SELECT * FROM product_detail WHERE id IN (1, 2, 3, ...) limit 1;

11. Precompile Assets

Untuk setting program Laravel, developer kerap membagikan code ke file-file terpisah. Walau ini membuat code masih tetap bersih dan bisa diatur, ini tidak berperan pada produksi yang efisien. Untuk menolong pengembang dalam kerangka ini, Laravel sediakan perintah simpel:

php artisan optimize
php artisan config:cache
php artisan route:cache

12. Pakai CDN untuk mengirimi Static Assets

Berisi file asset statis dari server CDN (bersimpangan dengan memuatnya langsung dari server yang menghosting file) akan tingkatkan performa program Laravel.

esudah client berkunjung situs, beberapa info dihidangkan dari tempat CDN paling dekat. Hasil ini ialah kecepatan timbunan halaman yang pada intinya cepat dan hal yang paling bermanfaat untuk klien. Ini memiliki arti Anda harus mengkarakterisasi sumber daya statis (JS, CSS, HTML, gambar, rekaman, dan beberapaya, dan keaktifan.) pada program tertentu.

13. Asset Bundel

Laravel Mix datang secara standar dalam program Laravel. Memakai beberapa praprosesor CSS dan JavaScript yang biasa, Laravel Mix sediakan API yang efisien untuk mendeskripsikan pembikinan Webpack untuk program PHP Anda. Untuk mengkompilasi asset program terhitung skrip, model, dan yang lain, saya akan memakai Laravel Mix untuk kompilasi. Dengan itu, kita bisa menyatukan beberapa stylesheet secara efektif ke satu file.

mix.styles([
'public/css/vendor/normalize.css',
'public/css/styles.css'
], 'public/css/all.css');

Ini akan membuat suatu file all.css yang berisi model dari normalize. styles dan css.css. Dengan langkah ini, kita bisa memakai all.css dalam HTML kita secara mudah, dibanding masukkan normalize. styles dan css.css satu per satu. Ini, pada waktunya, akan kurangi jumlah keinginan HTTP yang dibutuhkan untuk ambil file-file ini satu per satu. Karena saat ini cuman memerlukan satu keinginan, bukan dua untuk ambil file. Dan sebagai hasilnya, kita akan menyaksikan sedikit kenaikan dalam kecepatan program kami.

14. Asset Minifying

Mengkompilasi semua asset di satu tempat kemungkinan usai dengan file memiliki ukuran besar. Mengakibatkan, praktek ini tidak jadikan program kita untuk rasakan faedahnya dari gabungan yang diaplikasikan. Oleh karenanya untuk menangani permasalahan ini, kita bisa memperkecil asset kita memakai Laravel Mix. Pakai perintah berikut ini:

npm run production

Ini akan jalankan semua taxes dari Laravel Mix dan pastikan asset kita siap untuk production dengan mengecilkannya. Sesudah diperkecil, asset akan jadi lebih kecil ukuran, hingga bisa termuat bisa lebih cepat, yang hendak percepat performa program kita.

15. Jalankan versi terkini dari PHP

Versi terkini PHP sudah bawa kenaikan berarti dalam performanya. Oleh karenanya, yakinkan program Laravel Anda jalankan PHP versi terkini hingga Anda bisa manfaatkan semua kenaikan performa yang dikenalkan dalam versi baru di program Anda.

16. Memakai Laravel Debugbar

Walau bukan tehnik optimisasi, tapi sebuah package. Laravel Debugbar ialah paket untuk memadukan PHP Debug Bar dengan Laravel. Ini terhitung ServisProvider untuk mendaftar debugbar dan menyertakannya ke output. Ini ialah paket yang bisa dipakai sebagai monitor performa Laravel. Dianjurkan untuk memakai paket ini saat meningkatkan program Anda. Karenanya itu, Anda bisa secara mudah mengecek bagaimana program Anda selanjutnya tingkatkannya, dan jalan.

Selanjutnya dapat disaksikan disini.

17. General Performnce Tuning Panduan for Laravel :

  • Laravel page speed composer package
  • Laravel page speed composer package
    

    Untuk memasangnya memakai composer lakukan perintah:

    composer require renatomarinho/laravel-page-speed
    
  • Update Provider Details
  • Selanjutnya membuka file config/app.php , tambah ServisProvider punya laravel-page-speedlaravel-page-speed

    'providers' => [
      ....
      ....
      RenatoMarinho\LaravelPageSpeed\ServiceProvider::class,
    ],
    
  • Publish the package
  • Selanjutnya publish package nya untuk menerapkan di dalam program Laravel kita.

    php artisan vendor:publish --provider="RenatoMarinho\LaravelPageSpeed\ServiceProvider"
    
  • Adding middleware for web access
  • Sesudah mempublikasikan package, kita perlu menambah detil middleware di file Kernel.php. Kamu dapat mengopi dan tempel code di bawah berikut $middlewareGroups

    protected $middlewareGroups = [
       'web' => [
           ........
           ........
           \RenatoMarinho\LaravelPageSpeed\Middleware\InlineCss::class,
    \RenatoMarinho\LaravelPageSpeed\Middleware\ElideAttributes::class,
    \RenatoMarinho\LaravelPageSpeed\Middleware\InsertDNSPrefetch::class,
    \RenatoMarinho\LaravelPageSpeed\Middleware\RemoveComments::class,
    \RenatoMarinho\LaravelPageSpeed\Middleware\TrimUrls::class,
    \RenatoMarinho\LaravelPageSpeed\Middleware\RemoveQuotes::class,
    \RenatoMarinho\LaravelPageSpeed\Middleware\CollapseWhitespace::class,
      ]
    ]
    

18. Memakai Stack Untuk Tingkatkan Perform

Dikenali sebagai ThunderStack, stack khusus ini direncanakan untuk tingkatkan performa program Laravel. Resep terbaik terbagi dalam Apache dan NGINX, Pernis dan Memcached. Disebelah database, Anda mempunyai opsi MySQL atau MariaDB. Disamping itu, Anda bisa aktifkan Redis sebagai driver session atau bisa mengonfigurasikan Pernis sesuai keperluan proyek.

19. Ringkasan

Kemungkinan itu yang dapat saya catat ini kali, tidak harus mengaplikasikan semua pada program Laravel. Tetapi pilih langkah terbaik yang dapat dipakai untuk tingkatkan perform dan kecepatan Laravel punyamu sendiri.