Tối ưu hóa code PHP: Những điều nên làm và không nên làm (Phần 1)

Thảo luận trong 'Lập Trình PHP' bắt đầu bởi lebichvan888, 25/9/15.

  1. Ở bài viết này, seoweb24h xin tổng hợp 1 số cách để tối ưu hóa code PHP, giúp code PHP tăng tốc độ, tiết kiệm bộ nhớ, đôi lúc còn giúp cho lập trình viên tiết kiệm được thời gian, hạn chế sai sót.

    [​IMG]

    1. Viết các phương thức, hàm có thể được dưới dạng Static để tăng tốc độ thực thi.
    2. Sử dụng echo thay cho print.
    3. Dùng echo để xuất các biến nối tiếp nhau thay cho việc xuất các chuỗi liên tiếp.
    4. Gán giá trị lớn nhất cho biến chạy trong vòng lặp for, thay vì gán bên trong như thông thường. VD: $maxvalue = 100/10; for($i=0; $i<$maxvalue; $i++){ // Code } sẽ nhanh hơn: for($i=0; $i<100/10; $i++){ // Some code }
    5. Unset các biến để giải phóng bộ nhớ, đặc biết là các mảng lớn.
    6. Hạn chế dùng các hàm __get, __set, __autoload
    7. Hàm require_once() nên sự dụng hạn chế.
    8. Sử dụng được dẫn đầy đủ ở các hàm includes và requires.
    9. Nếu bạn cần biết thời gian lúc đoạn script bắt đầu thực thi, hàm $_SERVER[’REQUEST_TIME’] được ưu tiên sử dụng hơn time()
    10. Nếu có thể, nên sử dụng strncasecmp, strpbrk và stripos thay cho regex.
    11. Dùng str_replace nhanh hơn preg_replace, nhưng hàm strtr lại nhanh hơn str_replace.
    12. Nếu trong các hàm, như là hàm thay thế chuỗi, sử dụng tham biến gồm cả chuỗi và kí tự, nên viết thêm 1 vài hàm thay thế từng kí tự một trong chuỗi, thay vì sử dụng 1 dòng code tìm và thay thế nhiều chuỗi.
    13. Sử dụng lệnh rẽ nhánh switch tốt hơn 1 lô lốc các lệnh if,else if chồng nhau.
    14. Chặn lỗi bằng kí tự @ rất chậm.
    15. Bật hàm mod_deflate của apache.
    16. Đóng kết nối với CSDL khi các thao tác với nó đã hoàn thành.
    17. $row[’id’] nhanh hơn 7 lần so với $row[id]
    18. Các thông báo lỗi (Error Messages) rất tốn tài nguyên.
    19. Không sử dụng các hàm bên trong vòng lặp, ví dụ: for ($x=0; $x < count($array); $x) , hàm count() sẽ được gọi mỗi lần lặp.
    20. Tăng giá trị 1 biến cục bộ (local variable) bên trong phương thức của nó thì nhanh hơn. Gần như việc gọi 1 biến cục bộ trong 1 hàm.
    21. Tăng giá trị của biến toàn cục (global variable) chậm hơn 2 lần so với biến cục bộ.
    22. Tăng giá trị thuộc tính của 1 object (vd: $this->prop++) thì chậm hơn 3 lần so với biến cục bộ.
    23. Tăng giá trị của 1 biến cục bộ chưa được định nghĩa sẽ chậm hơn 9-10 lần so với 1 biến đã được cài đặt sẵn từ trước.
    24. Chỉ khai báo 1 biến toàn cục mà không sử dụng nó trong một hàm cũng làm chậm tốc độ (bằng khoảng thời gian như việc tăng giá trị 1 biến cục bộ). PHP hầu như phải kiểm tra xem biến này có tồn tại trước đó hay không.

    (..còn tiếp)

    Nguồn: seoweb24h tổng hợp và biên dịch.

Chia sẻ trang này