Performans

PHP istemci kitaplığı, Google Ads API ile etkileşiminizi minimum yapılandırmayla kolaylaştırır. Bununla birlikte, performans büyük ölçüde kitaplığın nasıl kullanıldığına ve entegre edildiğine bağlıdır.

Bu en iyi uygulamaların çoğu tüm diller için geçerlidir. Bu kılavuzda PHP'ye özel konular açıklanmaktadır.

Protobuf uygulaması

Protobuf, gRPC ve Google Ads API tarafından istek ve yanıt mesajları için kullanılır. İki uygulama mevcuttur ancak C ile yazılanın performansı daha iyidir.

Daha fazla bilgi için Protobuf rehberine bakın.

PHP yorumlayıcının çalışma modu

PHP çok yönlü bir komut dosyası dilidir ve kullanıma bağlı olarak birçok işlem moduna sahiptir. PHP CGI (Ortak Ağ Geçidi Arayüzü), yürütmeler arasında kaynak paylaşabildiğinden önemli bir avantaja sahiptir.

PHP sürümü

Genel olarak daha iyi performansa sahip olduğu için daha yeni bir PHP sürümüne düzenli olarak yükseltme yapmak iyi bir uygulamadır. Desteklenen PHP sürümlerinin listesi.

Kullanılmayan Google Ads API sürümleri

İstemci kitaplığının tüm sürümleri birden fazla Google Ads API sürümünü destekler. İstemci kitaplığı tarafından desteklenen her Google Ads API sürümü için ayrı paketler bulunur.

Google Ads API'nin kullanılmayan sürümlerine özel paketler, istemci kitaplığından güvenli bir şekilde kaldırılabilir. Yürütmeyi hızlandırmaya veya bellek ayak izini azaltmaya yardımcı olabileceği için istemci kitaplığı, bunu programatik olarak yapmanız için yardımcı programlar sunar.

Örnek

Yalnızca en son API sürümünü (v17) kullanan istemci kitaplığını uyguladığınızı ve kullanılmayan API sürümleri (v16 ve v15) için desteği kaldırmak istediğinizi varsayalım.

Projenin composer.json dosyasında, ApiVersionSupport sınıfında istemci kitaplığının sağladığı yardımcı programdan yararlanan bir Composer komut dosyası (remove-google-ads-api-version-support adlı) tanımlayın:

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

Ardından, sürüm numaralarıyla birlikte Composer komut dosyasını parametre olarak kullanın ve bazı durum mesajlarını yazdırın:

# 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

Aşağıdaki örnek yürütme çıkışı, dosya boyutunun 50 milyon küçüldüğünü ve desteklenen tek sürümün V17 olduğunu göstermektedir:

# 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

Geliştirme mi, üretim mi?

PHP, talimatları yürütmeden önce derlediği yorumlanan bir dildir. Geliştirme süresinde kaynaklar çoğu zaman değişirken, yürütme süresi o kadar önemli olmadığından bu genellikle avantajlıdır. Ancak istikrar ve performans temel kaygılar haline geldiğinden üretim aşamasında bunun tersi geçerlidir.

Önbellek

Önbelleğe alma, hem performansı iyileştirdiği hem de önceden derlenmiş komut dosyası talimatlarını depolayarak kararlılığı artırdığı için sık kullanılan bir yöntemdir.

OPcache en sık kullanılan çözümdür ve varsayılan olarak kullanılabilir durumdadır.

Otomatik yükleme

Otomatik yükleme, sınıflar hakkında önceden derlenmiş bilgileri yükleyerek hem performansı iyileştirdiği hem de kararlılığı artırdığı için yaygın olarak kullanılır.

PHP istemci kitaplığı, otomatik yükleme için PSR-4'e uygundur ve tanımı composer.json dosyasının bir parçası olarak sağlar. Composer'ın özel seçenekleri (örneğin, --optimize-autoloader veya --classmap-authoritative) hemen kullanılabilir.

Günlük Kaydı

Günlük kaydedicileri ERROR gibi yüksek bir düzeye ayarlamak yürütme süresinin ek yükünü ve bellek tüketimini azaltmaya yardımcı olabilir.

Daha fazla bilgi için Günlük kaydı kılavuzuna bakın.

Hata ayıklama ve profil oluşturma

Hata ayıklayıcı ve profil aracı araçlarının devre dışı bırakılmasını öneririz. Çünkü bu araçlar, genellikle bir miktar yürütme zamanı gerektirir.

Önceden Yükle

PHP 7.4'ten itibaren, komut dosyalarını bellekte önceden yüklemek için OPcache önceden yükleme kullanılabilir. Bu sayede, normal önbelleğe alma işleminden bir adım daha ileri gider.

Bir komut dosyasının bu özellikten yararlanacak şekilde tasarlanması gerekir ancak OPcache önceden yüklemenin genel bir yolu olmadığından ve bellek kullanımı ile performans kazancı arasındaki denge, belirli bir projeye ve yürütmeye özgü olduğundan PHP istemci kitaplığının böyle bir olanağı yoktur.