Tăng performance cho PHP


1). Database

– Triệu chứng: bạn mất nhiều thời gian để tải một trang với Apache/IIS/PHP tương ứng với sự thiếu hụt thời gian xử lý (CPU)

– Biện pháp:

Đơn giản hóa câu truy vấn trong trường hợp …

Hoặc làm truy vấn phức hợp lên trong trường hợp …

Điều chỉnh database

2). Độ trễ mạng

– Triệu chứng:

Phụ thuộc vào nơi xảy ra trễ

Thường phản hồi chậm, với việc sử dụng CPU thấp

– Nguyên nhân:

Bão hòa mạng

Tìm kiếm DNS dự phòng

TCP Handshakes

Nhiều nút mạng (hops)

– Biện pháp:

3). Cạnh tranh truy xuất vào ra

– Triệu chứng: Không phán đoán được, và khó để ghi lại thời gian tải trang

– Nguyên nhân:

Quá ít bộ lưu trữ, nhưng lại quá nhiều dữ liệu

Lượng ghi đồng thời cao

Không đủ RAM

4). Sử dụng CPU

– Triệu chứng: Thời gian tải trang chậm, do CPU yếu hoặc là do code đòi hỏi nhiều CPU

– Nguyên nhân:

Code tồi, hoặc là các giải pháp kiến trúc đã cũ

Dư thừa biểu thức đệ quy

Dư thừa truy xuất vào ra

Hiệu xuất sử dụng server cao: ít server mà cung cấp traffic lớn

– Sâu xa:

Thời gian chạy code

Thời gian chạy code ảnh hưởng đến hệ thống

5). Sự kết nối mạng

– Triệu chứng:

Database hay webservice chậm phản hồi

Nếu các chức năng đọc không hoạt động, có thể là do phần cứng mạng

– Biện pháp:

Cẩn thận với ORM: các kỹ thuật ORM chỉ tổ làm chậm,

Cẩn thận với Magic Function __set, __get, __call:

– Private + __set, __get

– SOAP, COM,

Sử dụng preg_match vô tội vạ

Sử dụng acceleration

Sử dụng hàng đợi (Job queue, Message Queue)

Không nên làm

Cache

NFS server tốt cho PHP files

Query LIKE (SQL)

Array nhanh hơn Object

Nên làm

Giảm require_once, sử dụng auto loader

Ứng dụng theo chiều rộng, không theo chiều sâu

Sử  dụng công cụ chẩn đoán

Suy nghĩ kỹ trước khi code

Ngoài PHP

Giảm request

Sử dụng expire header

Stylesheet ở trên

Js ở dưới

Gzip các cached content

Giảm DNS Lookup

Tránh redirects

Chú ý page size với các server khác nhau

Dùng ít ajax😀

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s