Thư viện ứng dụng PHP giúp đơn giản hoá các lượt tương tác với Google Ads API, với cấu hình tối thiểu từ phía bạn. 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 tất cả 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.
Bản 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ó hai cách triển khai (PHP thuần tuý và tiện ích C). Tiện ích C cho cả protobuf và grpc đều cung cấp hiệu suất mạng và chuyển đổi tuần tự tốt hơn đáng kể.
Hãy xem hướng dẫn về Protobuf và hướng dẫn về Transport để 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ữ tập lệ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 máy chủ ứng dụng ổn định có lợi thế đáng kể so với CGI tiêu chuẩn vì các quy trình thực thi ổn định có thể sử dụng lại mã byte được lưu vào bộ nhớ đệm (thông qua OPcache) và 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ừ các điểm cải tiến về hiệu suất thời gian chạy. Hã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 những phiên bản Google Ads API mà ứng dụng của bạn không sử dụng khỏi thư viện ứng dụng một cách an toàn. Để giảm mức sử dụng bộ nhớ và tăng tốc độ 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, trong đó V26 là phiên bản duy nhất còn được hỗ trợ:
# 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
Môi trường phát triển và môi trường phát hành công khai
PHP là một ngôn ngữ thông dịch biên dịch các lệnh 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 thực tế, độ ổn định và hiệu suất trở thành mối quan tâm chính.
Bộ nhớ đệm
Bạn nên lưu vào bộ nhớ đệm vì việc này giúp cải thiện hiệu suất và tăng độ ổn định bằng cách lưu trữ mã byte tập lệnh được biên dịch trước trong bộ nhớ dùng chung.
OPcache là giải pháp tiêu chuẩn và được tích hợp sẵn trong PHP theo mặc định.
Tự động nạp tiền
Tự động tải giúp cải thiện hiệu suất và độ ổn định bằng cách tải thông tin bản đồ lớp được biên dịch trước.
Thư viện ứng dụng PHP tuân thủ PSR-4 để tự động tải và cung cấp định nghĩa trong tệp composer.json. Sau đó, bạn có thể sử dụng ngay các tuỳ chọn CLI của Trình soạn nhạc chuyên dụ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ý ở ngưỡng cao hơn, chẳng hạn như ERROR hoặc WARNING trong môi trường thực tế, giúp giảm mức hao tổn I/O và mức tiêu thụ bộ nhớ.
Hãy xem Hướng dẫn ghi nhật ký để biết thêm thông tin.
Gỡ lỗi và lập hồ sơ
Tắt các tiện ích trình gỡ lỗi và trình phân tích tài nguyên (chẳng hạn như Xdebug) trong môi trường thực tế vì chúng gây ra mức hao tổn thực thi đáng kể.
Tải sẵn
Kể từ PHP 7.4, bạn có thể sử dụng tính năng tải trước OPcache để tải trướ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 việc lưu vào bộ nhớ đệm OPcache tiêu chuẩn.
Bạn phải thiết kế một tập lệnh tải trước 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 trước chung vì sự đánh đổi giữa mức sử dụng bộ nhớ và mức tăng hiệu suất là tuỳ theo từng dự án và môi trường triển khai.