Performance

Library klien PHP memudahkan interaksi dengan Google Ads API dengan konfigurasi minimal di pihak Anda. Namun, performanya sangat bergantung pada cara library digunakan dan diintegrasikan.

Sebagian besar praktik terbaik ini berlaku untuk semua bahasa. Panduan ini membahas secara khusus untuk PHP.

Implementasi protobuf

Protobuf digunakan oleh gRPC dan Google Ads API untuk pesan permintaan dan respons. Tersedia dua implementasi, meskipun yang ditulis dalam C memiliki performa yang lebih baik.

Lihat Panduan Protobuf untuk informasi selengkapnya.

Mode operasi penafsir PHP

PHP adalah bahasa pembuatan skrip yang serbaguna dan memiliki banyak mode operasi, bergantung pada penggunaannya. PHP CGI (Common Gateway Interface) memiliki keunggulan penting karena dapat berbagi resource antar-eksekusi.

Versi PHP

Sebaiknya upgrade secara rutin ke versi PHP yang lebih baru karena biasanya memiliki performa keseluruhan yang lebih baik. Daftar versi PHP yang didukung.

Versi Google Ads API yang tidak digunakan

Semua versi library klien mendukung beberapa versi Google Ads API. Untuk setiap versi Google Ads API yang didukung oleh library klien, terdapat paket khusus untuk versi tersebut.

Paket yang dikhususkan untuk versi Google Ads API yang tidak digunakan dapat dihapus dengan aman dari library klien. Library klien menyediakan utilitas untuk melakukannya secara terprogram karena dapat mempercepat eksekusi atau mengurangi jejak memori.

Contoh

Anggaplah Anda mengimplementasikan library klien yang hanya menggunakan versi API terbaru: v16, dan Anda ingin menghapus dukungan untuk versi API yang tidak digunakan: v15 dan v14.

Dalam file composer.json project, tentukan skrip Composer (bernama remove-google-ads-api-version-support) yang memanfaatkan utilitas yang disediakan oleh library klien, di class ApiVersionSupport:

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

Kemudian, gunakan skrip Composer dengan nomor versi sebagai parameter dan cetak beberapa pesan status:

# 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

Contoh output eksekusi di bawah ini menunjukkan pengurangan ukuran file sebesar 50 juta dan satu-satunya versi yang didukung lainnya adalah 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

Pengembangan versus produksi

PHP adalah bahasa yang ditafsirkan karena mengompilasi petunjuk terlebih dahulu sebelum menjalankannya. Hal ini biasanya bermanfaat karena selama waktu pengembangan, sumber sering kali berubah sedangkan waktu eksekusi tidak terlalu penting. Namun, hal sebaliknya berlaku pada waktu produksi karena stabilitas dan performa menjadi perhatian utama.

Cache

Menyimpan ke cache bersifat umum dan sangat direkomendasikan karena meningkatkan performa dan meningkatkan stabilitas dengan menyimpan petunjuk skrip yang telah dikompilasi.

OPcache adalah solusi yang paling umum digunakan dan tersedia secara default.

Penambahan saldo otomatis

Autoload bersifat umum karena meningkatkan performa dan meningkatkan stabilitas dengan memuat informasi yang telah dikompilasi sebelumnya tentang class.

Library klien PHP sesuai dengan PSR-4 untuk pemuatan otomatis dan memberikan definisi sebagai bagian dari file composer.json. Opsi khusus Composer, seperti --optimize-autoloader atau --classmap-authoritative misalnya, dapat digunakan secara langsung.

Logging

Menyetel logger ke level tinggi seperti ERROR dapat membantu mengurangi overhead waktu eksekusi dan konsumsi memori.

Lihat Panduan logging untuk informasi selengkapnya.

Proses debug & pembuatan profil

Sebaiknya nonaktifkan alat debugger dan profiler karena alat tersebut biasanya disertai dengan beberapa overhead waktu eksekusi.

Pramuat

Mulai PHP 7.4, pramuat OPcache dapat digunakan untuk melakukan pramuat skrip di memori, satu langkah lebih jauh daripada penyimpanan dalam cache reguler.

Skrip harus dirancang untuk memanfaatkan fitur ini, tetapi library klien PHP tidak menggunakannya karena tidak ada cara umum untuk menerapkan pramuat OPcache, dan kompromi antara penggunaan memori dan peningkatan performa sangat spesifik untuk project dan eksekusi tertentu.