Hướng dẫn dùng genators trong PHP
Chào các bạn, như chúng ta đã biết, tốc độ của một trang web liên quan trực tiếp đến trải nghiệm của người dùng. Nó làm nên sự khác biệt giữa một ứng dụng web tốt và một ứng dụng web hoàn hảo. Chính vì thế, ở vị trí của một developer, chúng ta luôn luôn mong muốn tìm mọi cách để cải thiện hiệu năng của sản phẩm mà chúng ta làm ra. Có chút gì đó lan man không nhỉ, chúng ta đang nói về PHP Generators cơ mà, sao lại bàn đến hiệu năng và tốc độ ở đây nhỉ. Vâng, trong khá nhiều cách để cải thiện hiệu năng của một trang web tốt hơn, hôm nay mình xin được giới thiệu đến các bạn một phương pháp tối ưu hóa hiệu năng trực tiếp trong code. Đó là sử dụng PHP Generators. Chúng ta cùng nhau bắt đầu nhé. Show PHP Generators là gì?Bắt đầu từ version 5.5, PHP cung cấp cho chúng ta một phương pháp mới để truy nhập đến dữ liệu trong một mảng mà không cần lưu trữ tất cả các phần tử của mảng trong không gian bộ nhớ gọi là các hàm Generators. Vẫn có một chút khó hiểu phải không? Chúng ta sẽ cùng nhau xem qua một ví dụ sau để rõ hơn về vấn đề này. Đầu tiên, trên server của chúng ta cần tạo một file tên là generator.php và chúng ta sẽ sử dụng nó xuyên suốt bài này. Sau khi tạo file chúng ta hãy thêm một số dòng code như sau:
Sau đó chúng ta hãy khởi động server đã cài đặt PHP
Khởi động trình duyệt và vào địa chỉ Ồ, có vẻ như mọi thứ chưa có gì bất ổn lắm cho đến một ngày đẹp trời chúng ta thử khởi tạo hàm
Lúc này chúng ta thấy hàm Thông báo trên cho chúng ta biết rằng PHP server của chúng ta đang bị tràn bộ nhớ. Có một giải pháp cho vấn đề này chúng ta có thể nghĩ đến đó là chỉnh sửa trong file Sử dung PHP GeneratorsBây giờ chúng ta thử định nghĩa lại hàm
Bây giờ chúng ta hãy để ý đến hàm Đã không còn lỗi tràn bộ nhớ, trong
một thời gian cho phép trình duyệt đã hiển thị được kết quả như chúng ta mong muốn. Có thể thấy được bản thân Note: Một lưu ý nhỏ rằng chúng ta chỉ có thể sử dụng generators trong một hàm Tại sao nên sử dụng GeneratorsTrong rất nhiều trường hợp chúng ta muốn xử lý một tập dữ liệu rất lớn (ví dụ như dữ liệu từ các file log hệ thống) hoặc muốn tính toán xử lý trên một mảng với vô cùng lớn các
phần tử. Rõ ràng chúng ta không hề muốn việc xử lý trên các tập dữ liệu đó chiếm dụng một lượng lớn thậm chí là tất cả bộ nhớ của chúng ta và việc nên làm là tìm cách tiết kiệm bộ nhớ càng nhiều càng tốt. Thay vì phải lưu trữ cả một tập dữ liệu lớn như vậy, chúng ta có thể sử dụng các Returning KeysTrong một vài trường hợp, dữ liệu của chúng ta thực sự có ý nghĩa khi được biểu diễn dưới dạng
Sau đó chúng ta có thể sử dụng cặp giá trị
Truyền tham số và trong GeneratorsGiả sử như chúng ta muốn thêm một vài tham số để quy định cách hoạt động của
Và để thêm giá trị
Note: Chúng ta có thể
sử dụng từ khóa Kết luận
Tham khảoUnderstanding PHP Generators Generators overview |