Tất cả chúng ta đều đồng ý rằng không ai mong muốn sử dụng một ứng dụng truy cập chậm cả. Thứ chúng ta muốn là “fast”.

Theo một nghiên cứu của Google, 53% người dùng di động rời khỏi trang web truy cập mất trên 3s để tải. Vì vậy hiệu suất là rất quan trọng.

Mỗi giây trang web của bạn tải chậm là bạn đã mất đi một số lượng người dùng nhất định. Rất may với Laravel thì đây không phải là một vấn đề quá khó giải quyết vì vậy chúng ta hãy cùng tìm hiểu làm thế nào để cải thiện hiệu suất website xây dựng bằng Laravel nhé.

Sử dụng tính năng có sẵn của Laravel

Laravel cung cấp một số tính năng có sẵn để cải thiện hiệu suất cho bất kỳ website nào xây dựng dựa trên nó.

Sử dụng cache là một phương pháp cải thiện hiệu suất có lẽ rất phổ biến và Laravel cũng hỗ trợ nó điển hình là route caching. Bạn có thể thấy rằng mỗi khi truy cập vào website đằng sau hệ thống sẽ thực hiện một loạt các hành động để trả về các yêu cầu hiển thị của người dùng. Như vậy mỗi lần tải sẽ lại thực hiện từ đầu và mất từng đó thời gian để trả về thông tin người dùng cần.

Vì vậy điều bạn cần là lưu trữ lại kết quả trả về đó vào một nơi gọi là cache. Cụ thể ở đây chúng ta sẽ lưu thông tin xử lý routing của Laravel bằng cách sử dụng lệnh Artisan sau:

php artisan route:cache

Lệnh này có thể giúp tăng hiệu suất truy cập website của bạn lên đến 5x lần. Nó tác động khá đáng kể đến website của bạn.

Bên cạnh route:cache thì Laravel còn cung cấp các cache khác như:

  • View cache
  • Config cache
  • Envent cache

Chọn các Drivers phù hợp

Việc chọn đúng cache, queue, và session drivers cũng làm tăng hiệu suất ứng dụng web của bạn.

Trên production khuyến khích bạn nên sử dụng các drivers cache như Redis, Memcached, hoặc DynamoDB.

Với hàng đợi bạn có thể sử dụng Redis, SQS, hoặc Beanstalkd drivers sẽ đem lại hiệu suất đáng kể.

Với sessions bạn nên sử dụng Database, Redis, Memcached, hoặc DynamoDB drivers. Bạn không nên sử dụng cookie driver cho môi trường production do vấn đề về bảo mật.

Remove Unused Service

Bạn không nên load các service không cần thiết qua config mà hãy lưu ý chỉ load những config cần và tắt các service không dùng trong file config.

Classmap Optimization

Bạn có thể tăng hiệu suất bằng cách gộp các file được include để kết hợp chúng thành một file như vậy khi gọi include file sẽ chỉ gọi và sử dụng một file mà không đọc nhiều file khác nhau gây mất thời gian của hệ thống. Trong Laravel bạn hãy sử dụng lệnh sau để làm điều này:

php artisan optimize --force

Lưu ý: Chỉ sử dụng với phiên bản dưới 5.5 từ phiên bản mới sẽ tự động tích hợp không cần dùng lệnh.

Sử dụng thư viện hợp lý

Sử dụng quá nhiều thư viện sẽ làm cho website của bạn chậm đi do phải xử lý nhiều luồng thông tin của các thư viện khác nhau. Vì vậy nếu thư viện nào không dùng bạn hãy bỏ nó đi để cải thiện hiệu suất. Có hai nơi bạn cần tìm và loại bỏ thư viện không dùng đó là: config/app.php và composer.json.

Cache kết quả truy vấn

Bạn nên cache các truy vấn thường xuyên sử dụng và trả về cùng một kết quả để giảm truy vấn vào database và tăng hiệu suất:

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

Sử dụng “Eager Loading”

Bạn đã biết biểu thức n+1 làm tăng số lượng truy vấn và làm giảm hiệu suất. Khi sử dụng kết hợp với truy vấn sẽ làm giảm hiệu năng của bạn đáng kể nếu với số lượng lặp lại lớn. Để giải quyết bạn hãy sử dụng Eager Loading:

// slow performance (bad)
$post = App\Articles::all();
foreach ($ as $post) {
    echo $post->source->uri;
}

// eager loading (good)
$post = App\Articles::with('source')->get();
foreach ($post as $post) {
echo $post->source->uri;
}

Sử dụng CDN

Sử dụng CDN cho website của bạn cũng làm tăng hiệu suất đáng kể cho người dùng sử dụng web của bạn khi tự động lưu trữ lại các nội dung tĩnh không thay đổi của bạn như image, js, css.

CDN cho phép truy cập nhanh dữ liệu của website giống như cache mà không phải lấy lại dữ liệu trên server production. Ngoài ra còn thích hợp đối với các website có đối tượng người dùng ở nhiều địa điểm truy cập khác nhau.

Assets minifying

Sử dụng Laravel mix để giúp tối ưu các file css, js, image, … làm cho các file này giảm dung lượng từ đó tăng tốc độ đọc vào các file làm cho website của bạn nhanh hơn nữa, để sử dụng bạn cần cài nodejs và npm. Sau đó sử dụng duy nhất lệnh sau là đã thành công:

npm run production

Latest version

Việc sử dụng version mới nhất của PHP hay Laravel cũng giúp bạn cải tiến hiệu suất ứng dụng web của mình, do ở cáic phiên bản mới nhất sẽ có nhiều thay đổi lớn về các tính năng cũng như tăng cường hiệu suất của nó.

Kết luận

Vậy là mình đã chỉ ra những cách cơ bản để bạn cải tiến đáng kể hiệu suất của website xây dựng bằng Laravel. Ngoài ra còn rất nhiều cách khác nhau để làm tăng tốc độ website Laravel bạn hãy tự tìm hiểu thêm và chia sẻ nó cho mọi người nhé.


Khóa học PHP Laravel Fullstack 7 tháng - Cam kết việc làm - Khóa học dành người mới bắt đầu

Chi tiết - tại đây