Thư viện ứng dụng PHP giúp bạn dễ dàng tương tác với Google Ads API với cấu hình tối thiểu. Tuy nhiên, hiệu suất phụ thuộc đáng kể vào cách thư viện được sử dụng và tích hợp.
Hầu hết các phương pháp hay nhất chung đều áp dụng cho mọi ngôn ngữ. Hướng dẫn này trình bày các phương pháp tối ưu hoá hiệu suất dành riêng cho PHP.
Triển khai Protobuf và gRPC
Protobuf được gRPC và Google Ads API sử dụng cho
các thông báo yêu cầu và phản hồi. Có 2 cách triển khai (PHP thuần tuý và tiện ích C), đồng thời các tiện ích C cho cả protobuf và grpc đều mang lại hiệu suất mạng và tuần tự hoá tốt hơn đáng kể.
Hãy xem hướng dẫn về Protobuf và hướng dẫn về Giao thức truyền tải để biết thêm thông tin.
Chế độ hoạt động của trình thông dịch PHP
PHP là một ngôn ngữ lập trình linh hoạt và có một số chế độ hoạt động tuỳ thuộc vào cách sử dụng. PHP-FPM (Trình quản lý quy trình FastCGI) hoặc các máy chủ ứng dụng liên tục có lợi thế đáng chú ý so với CGI tiêu chuẩn vì các quy trình worker liên tục có thể sử dụng lại mã byte đã lưu vào bộ nhớ đệm (thông qua OPcache) và các tài nguyên trên các yêu cầu.
Phiên bản PHP
Thường xuyên nâng cấp lên phiên bản PHP mới hơn để hưởng lợi từ những điểm cải thiện về hiệu suất thời gian chạy. Xem danh sách các phiên bản PHP được hỗ trợ.
Các phiên bản Google Ads API không dùng đến
Tất cả các phiên bản của thư viện ứng dụng đều hỗ trợ nhiều phiên bản Google Ads API. Đối với mỗi phiên bản Google Ads API được thư viện ứng dụng hỗ trợ, sẽ có các gói dành riêng cho phiên bản đó.
Bạn có thể xoá các gói dành riêng cho các phiên bản Google Ads API mà ứng dụng của bạn không dùng đến một cách an toàn khỏi thư viện ứng dụng. Để giảm mức sử dụng bộ nhớ và tăng tốc quá trình thực thi, thư viện ứng dụng cung cấp một tiện ích để xoá các phiên bản API không dùng đến theo phương thức lập trình.
Ví dụ
Giả sử bạn đang triển khai một ứng dụng khách chỉ sử dụng phiên bản API mới nhất (v26) và bạn muốn xoá tính năng hỗ trợ cho các phiên bản API không dùng đến (v23, v24 và v25).
Trong tệp composer.json của dự án, hãy xác định một tập lệnh Composer (có tên là
remove-google-ads-api-version-support) tận dụng tiện ích do
thư viện ứng dụng cung cấp trong ApiVersionSupport:
"scripts": {
"remove-google-ads-api-version-support": [
"Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
]
}
Sau đó, hãy chạy tập lệnh Composer với số phiên bản làm tham số và in thông báo trạng thái:
# Change the current directory to the project directory.
cd /path/to/the/project
# Install the project.
composer install
# Output the vendor folder size and the list of Google Ads API versions that are
# supported before removing support for unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
# Use the Composer script to remove the unused versions
# v23, v24, and
# v25 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- \
23 \
24 \
25
# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
Kết quả thực thi mẫu sau đây cho thấy mức giảm kích thước tệp, với V26 là phiên bản được hỗ trợ duy nhất còn lại:
# Supported Google Ads API versions:
V23
V24
V25
V26
# Vendor folder size:
135M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 23 of Google Ads API...
Done
Removing support for the version 24 of Google Ads API...
Done
Removing support for the version 25 of Google Ads API...
Done
# Supported Google Ads API versions:
V26
# Vendor folder size:
60M ./vendor
Phát triển so với sản xuất
PHP là một ngôn ngữ thông dịch, biên dịch các hướng dẫn trước khi thực thi. Điều này có lợi trong quá trình phát triển, khi các tệp nguồn thường xuyên thay đổi và thời gian thực thi ít quan trọng hơn. Trong môi trường phát hành công khai, tính ổn định và hiệu suất trở thành mối quan tâm chính.
Bộ nhớ đệm
Bạn nên sử dụng bộ nhớ đệm vì bộ nhớ đệm giúp cải thiện hiệu suất và tăng tính ổn định bằng cách lưu trữ mã byte của tập lệnh đã biên dịch trước trong bộ nhớ dùng chung.
OPcache là giải pháp tiêu chuẩn và được gói cùng với PHP theo mặc định.
Tự động nạp tiền
Tính năng tự động nạp giúp cải thiện hiệu suất và tính ổn định bằng cách tải thông tin bản đồ lớp đã biên dịch trước.
Thư viện ứng dụng PHP tuân thủ PSR-4 để tự động nạp và cung cấp
định nghĩa như một phần của tệp composer.json. Sau đó, bạn có thể sử dụng ngay các tuỳ chọn CLI
Composer dành riêng, chẳng hạn như --optimize-autoloader hoặc
--classmap-authoritative, trong các bản dựng phát hành công khai.
Ghi nhật ký
Việc đặt trình ghi nhật ký thành ngưỡng cao hơn, chẳng hạn như ERROR hoặc WARNING trong quá trình phát hành công khai, giúp giảm chi phí I/O và mức sử dụng bộ nhớ.
Hãy xem hướng dẫn về Ghi nhật ký để biết thêm thông tin.
Gỡ lỗi và phân tích
Tắt trình gỡ lỗi và các tiện ích trình phân tích (chẳng hạn như Xdebug) trong quá trình phát hành công khai vì chúng làm tăng đáng kể chi phí thực thi.
Tải sẵn
Kể từ PHP 7.4, bạn có thể sử dụng tính năng tải sẵn OPcache để tải sẵn các tập lệnh vào bộ nhớ khi khởi động máy chủ, tiến thêm một bước so với tính năng lưu vào bộ nhớ đệm OPcache tiêu chuẩn.
Bạn phải thiết kế tập lệnh tải sẵn dành riêng cho ứng dụng của mình. Thư viện ứng dụng PHP không cung cấp tập lệnh tải sẵn chung vì sự đánh đổi giữa mức sử dụng bộ nhớ và mức tăng hiệu suất là dành riêng cho từng dự án và môi trường triển khai.