Performa

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

Sebagian besar praktik terbaik ini dapat diterapkan ke semua bahasa. Panduan ini membahas salah satu fungsi yang spesifik untuk PHP.

Penerapan Protobuf

Protobuf digunakan oleh gRPC dan Google Ads API untuk pesan permintaan dan respons. Dua implementasi adalah walaupun yang ditulis dalam C memiliki kinerja yang lebih baik.

Lihat Panduan Protobuf untuk informasi selengkapnya.

Mode operasi penafsir PHP

PHP adalah pembuatan skrip bahasa dan memiliki banyak operasi yang berbeda bergantung pada penggunaannya. PHP CGI (Common Gateway Interface) memiliki keunggulan penting karena dapat membagikan resource di antara eksekusi.

Versi PHP

Merupakan praktik yang baik untuk secara teratur meng-upgrade ke versi PHP yang lebih baru seperti biasanya menghasilkan performa keseluruhan yang lebih baik. Daftar PHP yang didukung versi.

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 versinya.

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

Contoh

Misalkan Anda mengimplementasikan library klien yang hanya menggunakan Versi API: v17, dan Anda ingin menghapus dukungan untuk versi yang tidak digunakan Versi API: v16 dan v15.

Di file composer.json project, tentukan skrip Composer (bernama remove-google-ads-api-version-support) yang memanfaatkan utilitas yang disediakan oleh library klien, di dalam kelas 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 v15 and v16 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 15 16

# 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 {i>output<i} eksekusi di bawah ini menunjukkan pengurangan ukuran file sebesar 50 M dan satu-satunya versi yang didukung lainnya adalah V17:

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

Pengembangan versus produksi

PHP adalah bahasa penafsiran di mana LLM terlebih dahulu mengompilasi instruksi sebelum mengeksekusinya. Hal ini biasanya menguntungkan karena selama waktu pengembangan, sumber sering berubah saat eksekusi waktu bukanlah hal yang penting. Namun, kebalikannya berlaku pada waktu produksi karena stabilitas dan kinerja menjadi masalah utama.

Cache

Menyimpan data ke cache adalah hal yang umum dan sangat direkomendasikan karena meningkatkan performa dan meningkatkan stabilitas dengan menyimpan petunjuk skrip yang telah dikompilasi sebelumnya.

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

Penambahan saldo otomatis

Pemuatan otomatis umum dilakukan karena dapat meningkatkan performa sekaligus stabilitas dengan memuat informasi yang telah dikompilasi sebelumnya tentang class.

Library klien PHP sesuai dengan PSR-4 untuk pemuatan otomatis serta memberikan definisi sebagai bagian dari composer.json . Opsi khusus Composer, seperti misalnya --optimize-autoloader atau --classmap-authoritative, kemudian dapat menjadi yang sudah langsung bisa digunakan.

Logging

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

Lihat Panduan logging untuk informasi lebih lanjut.

Proses debug & pembuatan profil

Sebaiknya nonaktifkan alat debugger dan profiler seperti biasanya beberapa {i>overhead<i} waktu eksekusi.

Pramuat

Sejak PHP 7.4, OPcache melakukan pramuat dapat digunakan untuk melakukan pramuat skrip di memori, selangkah lebih maju dari dalam cache.

Sebuah skrip harus dirancang untuk memanfaatkan fitur ini, tetapi tidak dilakukan library klien karena tidak ada cara umum untuk mengimplementasikan OPcache pramuat, dan kompromi antara penggunaan memori dan peningkatan kinerja yang sangat spesifik untuk proyek dan pelaksanaan tertentu.