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 mà bạn chỉ cần thiết lập 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.
Việc 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 phương thức triển khai (PHP thuần tuý và một tiện ích C), đồng thời tiện ích C cho cả protobuf và grpc đều mang lại hiệu suất mạng và khả năng 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ề cách vận chuyển để 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ữ kịch bản linh hoạt và có một số chế độ hoạt động tuỳ thuộc vào mụ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ó một 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 được 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 cải tiến về hiệu suất thời gian chạy. Kiểm tra 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 mà thư viện ứng dụng hỗ trợ, sẽ có các gói chuyên dụ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 chỉ sử dụng phiên bản API mới nhất (v25) và bạn muốn xoá hỗ trợ cho các phiên bản API không dùng đến (v22, v23 và v24).
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
# v22, v23, and
# v24 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- \
22 \
23 \
24
# 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
Đầu ra thực thi mẫu sau đây cho thấy mức giảm kích thước tệp, với V25 là phiên bản được hỗ trợ duy nhất còn lại:
# Supported Google Ads API versions:
V22
V23
V24
V25
# Vendor folder size:
135M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 22 of Google Ads API...
Done
Removing support for the version 23 of Google Ads API...
Done
Removing support for the version 24 of Google Ads API...
Done
# Supported Google Ads API versions:
V25
# Vendor folder size:
60M ./vendor
Phát triển so với phát hành công khai
PHP là một ngôn ngữ thông dịch biên dịch các chỉ 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, độ ổn định và hiệu suất trở thành mối lo ngại chính.
Bộ nhớ đệm
Bạn nên sử dụng tính năng lưu vào bộ nhớ đệm vì tính năng 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 kịch bản đượ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 đi kèm với 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 như một phần của tệp composer.json. Sau đó, bạn có thể sử dụng ngay các lựa chọn CLI của Composer 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ý thành một ngưỡng cao hơn, chẳng hạn như ERROR hoặc WARNING trong quá trình sản xuất giúp giảm chi phí 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 gỡ lỗi và lập hồ sơ (chẳng hạn như Xdebug) trong quá trình sản xuất vì chúng làm tăng đáng kể mức hao tổn khi 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 trước OPcache để tải trước 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ế 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à riêng cho từng dự án và môi trường triển khai.