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

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

  1. Ở bài viết phần một, seoweb24h đã chia sẻ một số cách để tối ưu hóa code PHP. Phần này, seoweb24h sẽ chia sẻ tiếp với các bạn thêm 1 số cách để tối ưu hóa code PHP, giúp cho việc thiết kế web của bạn trở nên chuyên nghiệp hơn.
    [​IMG]

    1. Phương thức ở trong lớp dẫn xuất (derived class) sẽ chạy nhanh hơn khi ở trong lớp cơ sở (base class).
    2. Một hàm được gọi với 1 biến hoặc 1 hàm rỗng mất thời gian thực thi tương đương với 7-8 phép toán $localvar++. Các hàm thông thường thì mất thời gian thực thi khoảng 15 lần phép toán $localvar++.
    3. Sử dụng chuỗi với dấu ‘ thay vì ” sẽ nhanh hơn 1 chút khi trong chuỗi có chứa các biến. Tất nhiên nếu chuỗi không chứa biến thì 2 dấu này tương đương.
    4. Khi dùng lệnh echo để xuất chuỗi thì phân cách bằng dấu phẩy (,) sẽ nhanh hơn dấu chấm (.). Lưu ý: Việc này chỉ thực hiện được với lệnh echo (Hàm có thể nhận nhiều chuỗi như các tham biến).
    5. Đoạn mã PHP sẽ thực thi chậm hơn từ 2-10 lần so với đoạn mã HTML trong Apache, vì thế nên dùng nhiều hơn nếu có thể các đoạn mã HTML.
    6. Các đoạn mã PHP của bạn sẽ được biên dịch lại mỗi lần chạy nếu như nó chưa được lưu cache. Sử dụng các công cụ hỗ trợ lưu cache cho PHP sẽ giúp tăng hiệu xuất khoảng 25-100% bằng việc loại bỏ các lần biên dịch lại.
    7. Lưu bộ nhớ cache nhiều nhất có thể. Sử dụng memcached – một hệ thống lưu cache đối tượng với hiệu xuất cao để tăng tốc độ thực thi các ứng dụng web thông qua việc giảm số lần truy xuất Database. Sử dụng OP code cached để các đoạn mã không phải biên dịch lại mỗi lần chạy.
    8. Khi cần kiểm tra độ dài 1 chuỗi nhỏ hơn giá trị cụ thể nào đó, thông thường ta hay sử dụng hàm strlen() để lấy độ dài của chuỗi. Tuy nhiên trong trường hợp này, dùng thủ thuật với isset() sẽ giúp thực thi nhanh hơn, vì không phải là 1 hàm thông thường như strlen(), isset() là một language construct.
    9. Khi tăng hoặc giảm giá trị của một biến, sử dụng kiểu $i++ sẽ chậm hơn 1 chút so với ++$i. Đây là điều đặc biệt của PHP và không hoàn toàn đúng cho các ngôn ngữ khác. ++$i nhanh hơn trong PHP vì nó chỉ sử dụng 3 opcodes thay vì 4 như $i++. $i++ sẽ tạo ra một biến tạm khi tăng giá trị, trong khi ++i$ sẽ tăng trực tiếp giá trị gốc của biến. Đây là 1 trong những phương pháp tối ưu hóa của các công cụ tối ưu opcode như Zend’s PHP optimizer. Cách sử dụng này vẫn còn khá hữu ích trong khi rất nhiều ISP và server hiện nay không sử dụng các công cụ hỗ trợ tối ưu hóa opcode.

      VD: kiểm tra 1 chuỗi có độ dài nhỏ hơn 5
      if (strlen($foo) < 5) { echo “Foo is too short”; }
      if (!isset($foo{5})) { echo “Foo is too short”; }
    10. Không nên sử dụng tất cả theo Hướng đối tượng (OOP), mỗi phương thức và đối tượng tốn rất nhiều bộ nhớ.
    11. Không nên cài đặt mọi kiểu dữ liệu bằng lớp (class), sử dụng mảng (array) cũng rất hữu ích.
    12. Đừng chia các phương thức (method) ra quá nhiều, chỉ làm vậy đối với những đoạn code bạn sẽ thực sự cần sử dụng lại.
    13. Bạn luôn có thể chia nhỏ các đoạn code của 1 phương thức sau, khi cần thiết.
    14. Trước khi bắt tay viết 1 hàm mới, hãy dành 1 chút thời gian để xem hàm đó đã có sẵn hay chưa.
    15. Nếu bạn mất quá nhiều thời gian để viết 1 hàm, nên cân nhắc xem có thể viết nó ở dạng C extension hay không.
    16. mod_gzip (module nén dữ liệu có sẵn trong Apache) giúp nén và giảm dung lượng dữ liệu truyền tải của bạn tới 80%.
    17. Hạn chế câu truy vấn dữ liệu SQL: SELECT *


    Nguồn: seoweb24h tổng hợp và chỉnh sửa.

Chia sẻ trang này