Hiệu suất

Thư viện ứng dụng PHP giúp bạn dễ dàng tương tác với API Google Ads bằng cách sử dụng cấu hình tối thiểu. Tuy nhiên, hiệu suất còn phụ thuộc nhiều vào cách sử dụng và tích hợp thư viện.

Hầu hết các phương pháp hay nhất này đều có thể áp dụng cho mọi ngôn ngữ. Hướng dẫn này trình bày các công cụ dành riêng cho PHP.

Triển khai Protobuf

Protobuf được gRPC và API Google Ads 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, mặc dù cách triển khai được viết bằng C có hiệu suất tốt hơn.

Xem hướng dẫn về Protobuf để 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ó nhiều chế độ hoạt động tuỳ thuộc vào mức sử dụng. PHP CGI (Giao diện cổng chung) có một lợi thế đáng kể vì công cụ này có thể chia sẻ tài nguyên giữa các lần thực thi.

Phiên bản PHP

Bạn nên thường xuyên nâng cấp lên phiên bản PHP mới hơn vì phiên bản này thường có hiệu suất tổng thể tốt hơn. Danh sách các phiên bản PHP được hỗ trợ.

Các phiên bản API Google Ads không được sử dụng

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 API Google Ads. Đối với mỗi phiên bản của API Google Ads mà 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 phiên bản của API Google Ads không được sử dụng khỏi thư viện ứng dụng một cách an toàn. Vì thư viện ứng dụng có thể hữu ích trong việc tăng tốc quá trình thực thi hoặc giảm mức sử dụng bộ nhớ, nên thư viện ứng dụng sẽ cung cấp các tiện ích để thực hiện việc này theo phương thức lập trình.

Ví dụ:

Giả sử bạn đang triển khai thư viện ứng dụng chỉ sử dụng phiên bản API mới nhất: v16 và bạn muốn ngừng hỗ trợ các phiên bản API không dùng đến: v15v14.

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 lớp ApiVersionSupport:

"scripts": {
  "remove-google-ads-api-version-support": [
    "Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
  ]
}

Sau đó, sử dụng tập lệnh Composer với số phiên bản làm tham số và in một số 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 Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

# Use the Composer script to remove the unused versions v14 and v15 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 14 15

# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

Kết quả thực thi mẫu bên dưới cho biết kích thước tệp giảm 50 triệu và phiên bản duy nhất được hỗ trợ là V16:

# Supported Google Ads API versions:
V14
V15
V16
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 14 of Google Ads API...
Done
Removing support for the version 15 of Google Ads API...
Done
# Supported Google Ads API versions:
V16
# Vendor folder size:
60M     ./vendor

Phát triển và sản xuất

PHP là một ngôn ngữ được diễn giải, ở đó ngôn ngữ này biên dịch trước khi thực thi các lệnh đó. Điều này thường bất lợi vì trong thời gian phát triển, các nguồn thường thay đổi trong khi thời gian thực thi không quan trọng đến vậy. Tuy nhiên, điều ngược lại đúng tại thời điểm sản xuất vì tính ổn định và hiệu suất trở thành các mối quan tâm chính.

Bộ nhớ đệm

Việc lưu vào bộ nhớ đệm là phương pháp phổ biến và được khuyên dùng vì vừa giúp cải thiện hiệu suất vừa tăng độ ổn định bằng cách lưu trữ hướng dẫn của tập lệnh được biên dịch trước.

OPcache là giải pháp được dùng phổ biến nhất và có sẵn theo mặc định.

Tự động nạp tiền

Tính năng Tự động tải phổ biến vì tính năng này vừa cải thiện hiệu suất vừa tăng độ ổn định bằng cách tải thông tin được biên dịch trước về các lớp.

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 các tuỳ chọn riêng của Composer, chẳng hạn như --optimize-autoloader hoặc --classmap-authoritative, ngay từ đầu.

Ghi nhật ký

Việc đặt trình ghi nhật ký ở cấp cao như ERROR có thể giúp giảm mức hao tổn thời gian thực thi và mức tiêu thụ bộ nhớ.

Xem Hướng dẫn ghi nhật ký để biết thêm thông tin.

Gỡ lỗi và phân tích

Bạn nên tắt các công cụ trình gỡ lỗi và trình phân tích tài nguyên vì các công cụ này thường đi kèm với một số hao tổn thời gian thực thi.

Tải sẵn

Kể từ PHP 7.4, bạn có thể dùng tính năng tải trước OPcache để tải trước tập lệnh trong bộ nhớ, là bước tiến thêm một bước so với tính năng lưu vào bộ nhớ đệm thông thường.

Một tập lệnh phải được thiết kế để tận dụng tính năng này, nhưng thư viện ứng dụng PHP thì không vì không có cách thức chung để triển khai tải trước OPcache. Đồng thời, sự đánh đổi giữa mức sử dụng bộ nhớ và đạt được hiệu suất sẽ đặc biệt cụ thể đối với một dự án và quá trình thực thi nhất định.