Performa

Library klien PHP mempermudah interaksi dengan Google Ads API dengan konfigurasi minimal dari pihak Anda. Namun, performa sangat bergantung pada cara library digunakan dan diintegrasikan.

Sebagian besar praktik terbaik umum berlaku untuk semua bahasa. Panduan ini mencakup pengoptimalan performa khusus untuk PHP.

Penerapan Protobuf dan gRPC

Protobuf digunakan oleh gRPC dan Google Ads API untuk pesan permintaan dan respons. Dua penerapan tersedia (PHP murni dan ekstensi C), dan ekstensi C untuk protobuf dan grpc memberikan performa serialisasi dan jaringan yang jauh lebih baik.

Lihat panduan Protobuf dan panduan Transport untuk mengetahui informasi selengkapnya.

Mode operasi penafsir PHP

PHP adalah bahasa skrip serbaguna dan memiliki beberapa mode operasi, bergantung pada penggunaannya. PHP-FPM (FastCGI Process Manager) atau server aplikasi persisten memiliki keunggulan yang signifikan dibandingkan CGI standar karena proses worker persisten dapat menggunakan kembali bytecode yang di-cache (melalui OPcache) dan resource di seluruh permintaan.

Versi PHP

Upgrade secara rutin ke versi PHP yang lebih baru untuk mendapatkan manfaat dari peningkatan performa runtime. Periksa 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, ada paket khusus untuk versi tersebut.

Paket yang dikhususkan untuk versi Google Ads API yang tidak digunakan oleh aplikasi Anda dapat dihapus dengan aman dari library klien. Untuk mengurangi jejak memori dan mempercepat eksekusi, library klien menyediakan utilitas untuk menghapus versi API yang tidak digunakan secara terprogram.

Contoh

Misalkan Anda menerapkan aplikasi klien yang hanya menggunakan versi API terbaru (v25), dan Anda ingin menghapus dukungan untuk versi API yang tidak digunakan (v22, v23, dan v24).

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

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

Kemudian, jalankan skrip Composer dengan nomor versi sebagai parameter dan cetak 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 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

Output eksekusi contoh berikut menunjukkan pengurangan ukuran file, dengan V25 sebagai satu-satunya versi yang masih didukung:

# 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

Pengembangan versus produksi

PHP adalah bahasa yang diinterpretasikan yang mengompilasi instruksi sebelum mengeksekusinya. Hal ini menguntungkan selama pengembangan, saat file sumber sering berubah dan waktu eksekusi kurang penting. Di lingkungan produksi, stabilitas dan performa menjadi perhatian utama.

Cache

Caching direkomendasikan karena meningkatkan performa dan stabilitas dengan menyimpan bytecode skrip yang telah dikompilasi sebelumnya dalam memori bersama.

OPcache adalah solusi standar dan disertakan dengan PHP secara default.

Penambahan saldo otomatis

Pemuatan otomatis meningkatkan performa dan stabilitas dengan memuat informasi peta kelas yang telah dikompilasi sebelumnya.

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

Logging

Menyetel logger ke nilai minimum yang lebih tinggi seperti ERROR atau WARNING dalam produksi akan membantu mengurangi overhead I/O dan konsumsi memori.

Lihat Panduan logging untuk mengetahui informasi selengkapnya.

Proses debug dan pembuatan profil

Nonaktifkan ekstensi debugger dan profiler (seperti Xdebug) dalam produksi karena ekstensi tersebut menimbulkan overhead eksekusi yang besar.

Pramuat

Sejak PHP 7.4, pemuatan awal OPcache dapat digunakan untuk memuat awal skrip ke dalam memori saat server dimulai, sehingga selangkah lebih maju daripada penyimpanan cache OPcache standar.

Skrip pemuatan awal harus dirancang khusus untuk aplikasi Anda. Library klien PHP tidak menyediakan skrip pra-muat generik karena pertukaran antara penggunaan memori dan peningkatan performa bersifat spesifik untuk setiap project dan lingkungan deployment.