Performans

PHP istemci kitaplığı, Google Ads API ile etkileşimleri kolaylaştırır ve sizin tarafınızda minimum yapılandırma gerektirir. Ancak performans, kitaplığın nasıl kullanıldığına ve entegre edildiğine büyük ölçüde bağlıdır.

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

Protobuf uygulaması

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

Daha fazla bilgi için Protobuf kılavuzuna bakın.

PHP yorumlayıcısı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 (Common Gateway Interface), yürütmeler arasında kaynak paylaşabildiği için önemli bir avantaja sahiptir.

PHP sürümü

Genellikle daha iyi genel performans sunduğu için düzenli olarak daha yeni bir PHP sürümüne yükseltmek 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 Google Ads API'nin her sürümü için sürüme özel paketler bulunur.

Kullanılmayan Google Ads API sürümlerine ayrılmış paketler, istemci kitaplığından güvenli bir şekilde kaldırılabilir. İstemci kitaplığı, yürütmeyi hızlandırmak veya bellek ayak izini azaltmak için yararlı olabileceğinden bunu programatik olarak yapmak için yardımcı programlar sağlar.

Örnek

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

Projenin composer.json dosyasında, ApiVersionSupport sınıfında, istemci kitaplığı tarafından sağlanan 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, Composer komut dosyasını parametre olarak sürüm numaralarıyla 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 v21 and v22 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 21 22

# 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 çıktısı, dosya boyutunun 50 MB azaldığını ve desteklenen tek sürümün V23 olduğunu gösteriyor:

# Supported Google Ads API versions:
V21
V22
V23
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 21 of Google Ads API...
Done
Removing support for the version 22 of Google Ads API...
Done
# Supported Google Ads API versions:
V23
# Vendor folder size:
60M     ./vendor

Geliştirme ve üretim

PHP, talimatları yürütmeden önce derlediği için yorumlanmış bir dildir. Geliştirme sırasında kaynaklar genellikle değiştiği, yürütme süresi ise o kadar önemli olmadığı için bu durum genellikle avantajlıdır. Ancak üretim zamanında tam tersi geçerlidir. Bu aşamada asıl önemli olan kararlılık ve performanstır.

Önbellek

Önceden derlenmiş komut dosyası talimatlarını depolayarak hem performansı artırdığı hem de kararlılığı yükselttiği için önbelleğe alma yaygın olarak kullanılır ve şiddetle tavsiye edilir.

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

Otomatik yükleme

Otomatik yükleme, sınıflarla ilgili önceden derlenmiş bilgileri yükleyerek hem performansı artırdığı hem de kararlılığı yükselttiği 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 (ör. --optimize-autoloader veya --classmap-authoritative) hemen kullanılabilir.

Günlük Kaydı

Günlükçüleri ERROR gibi yüksek bir düzeye ayarlamak, yürütme süresi 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

Genellikle bir miktar yürütme süresi ek yükü getirdiklerinden hata ayıklayıcı ve profil oluşturucu araçlarını devre dışı bırakmanızı öneririz.

Önceden Yükle

PHP 7.4'ten itibaren, OPcache önceden yükleme, normal önbelleğe almanın bir adım ötesine geçerek komut dosyalarını belleğe önceden yüklemek için kullanılabilir.

Bu özellikten yararlanmak için bir komut dosyası tasarlanması gerekir ancak PHP istemci kitaplığı, OPcache önceden yükleme işlemini uygulamanın genel bir yolu olmadığı ve bellek kullanımı ile performans artışı arasındaki denge belirli bir proje ve yürütme işlemine özgü olduğu için bu özelliği desteklemez.