Performans

PHP istemci kitaplığı, sizin açınızdan minimum yapılandırmaya sahip olarak Google Ads API ile etkileşimleri kolaylaştırır. Ancak performans büyük ölçüde kitaplığın nasıl kullanıldığına ve entegre olduğuna bağlıdır.

Bu en iyi uygulamaların çoğu tüm diller için geçerlidir. Bu kılavuzda, PHP'ye özel çözümler ele alınmaktadır.

Protokol arabelleği uygulaması

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

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

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

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

PHP sürümü

Genellikle genel performans daha iyi olacağından yeni bir PHP sürümüne düzenli olarak geçmek 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 çok 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 adanmış 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ği için bunu programatik olarak yapmak üzere yardımcı programlar sunar.

Örnek

Yalnızca en yeni API sürümünü (v16) kullanan istemci kitaplığını uyguladığınızı ve v15 ve v14 kullanılmayan API sürümleri 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, sürüm numaralarını parametre olarak içeren Composer komut dosyasını 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 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

Aşağıdaki örnek yürütme çıkışı, dosya boyutunun 50 MB küçüldüğünü göstermektedir. Yalnızca V16 sürümü desteklenir:

# 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

Geliştirme mi, üretim mi?

PHP, talimatları yürütmeden önce derlediği için yorumlanmış bir dildir. Geliştirme zamanında kaynaklar genellikle değiştiğinden, yürütme süresi o kadar önemli olmadığından bu genellikle avantajlıdır. Ancak asıl mesele istikrar ve performans olduğu için üretim zamanında bunun tam tersi geçerli olur.

Önbellek

Önbelleğe alma, hem performansı iyileştirdiği hem de önceden derlenmiş komut dosyası talimatlarını depolayarak kararlılığı artırdığı için yaygın bir yöntemdir ve önemle tavsiye edilir.

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

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 bir uygulamadı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. Ardından, --optimize-autoloader veya --classmap-authoritative gibi özel Composer seçenekleri hemen kullanılabilir.

Günlük Kaydı

Günlük kaydedicileri ERROR gibi yüksek bir seviyeye ayarlamak, yürütme süresini 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 genellikle yürütme süresinde ek yük getirmesi nedeniyle devre dışı bırakılmasını öneririz.

Önceden Yükle

PHP 7.4'ten itibaren OPcache önyükleme özelliği bellekteki komut dosyalarını önceden yüklemek için kullanılabilir. Bu yöntem, normal önbelleğe alma işleminin bir adım ötesine geçer.

Bu özellikten yararlanmak için bir komut dosyasının tasarlanması gerekir ancak OPcache ön yüklemesini uygulamanın genel bir yolu olmadığından ve bellek kullanımı ile performans kazancı arasındaki denge, belirli bir projeye ve yürütmeye özel olduğundan PHP istemci kitaplığı bunu yapmaz.