PHP istemci kitaplığı, minimum yapılandırmayla Google Ads API ile etkileşimi kolaylaştırır. Ancak performans, kitaplığın nasıl kullanıldığına ve entegre edildiğine bağlıdır.
Genel en iyi uygulamaların çoğu tüm diller için geçerlidir. Bu kılavuzda, PHP'ye özgü performans optimizasyonları ele alınmaktadır.
Protobuf ve gRPC uygulamaları
Protobuf, istek ve yanıt mesajları için gRPC ve Google Ads API tarafından kullanılır. İki uygulama mevcuttur (saf PHP ve bir C uzantısı). Hem protobuf hem de grpc için C uzantıları, önemli ölçüde daha iyi serileştirme ve ağ performansı sağlar.
Daha fazla bilgi için Protobuf kılavuzuna ve Taşıma kılavuzuna bakın.
PHP yorumlayıcısının çalışma modu
PHP, çok yönlü bir kodlama dilidir ve kullanıma bağlı olarak çeşitli çalışma modları vardır. PHP-FPM (FastCGI Process Manager) veya kalıcı uygulama sunucuları, standart CGI'ya göre önemli bir avantaja sahiptir. Kalıcı çalışan süreçleri, istekler arasında önbelleğe alınmış bayt kodunu (OPcache aracılığıyla) ve kaynakları yeniden kullanabilir.
PHP sürümü
Çalışma zamanı performans iyileştirmelerinden yararlanmak için düzenli olarak daha yeni bir PHP sürümüne geçin. Desteklenen PHP sürümlerinin listesini inceleyin.
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 özel paketler bulunur.
Uygulamanız tarafından kullanılmayan Google Ads API sürümlerine ayrılmış paketler, istemci kitaplığından güvenli bir şekilde kaldırılabilir. İstemci kitaplığı, bellekte kaplanan yeri azaltmak ve yürütmeyi hızlandırmak için kullanılmayan API sürümlerini programatik olarak kaldırmaya yarayan bir yardımcı program sunar.
Örnek
Yalnızca en yeni API sürümünü (v26) kullanan bir istemci uygulama uyguladığınızı ve kullanılmayan API sürümleri (v23, v24 ve v25) için desteği kaldırmak istediğinizi varsayalım.
Projenizin composer.json dosyasında, ApiVersionSupport içindeki istemci kitaplığı tarafından sağlanan yardımcı programdan yararlanan bir Composer komut dosyası (remove-google-ads-api-version-support adında) tanımlayın:
"scripts": {
"remove-google-ads-api-version-support": [
"Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
]
}
Ardından, Composer komut dosyasını sürüm numaralarını parametre olarak kullanarak çalıştırın ve 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 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
# v23, v24, and
# v25 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- \
23 \
24 \
25
# 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
Aşağıdaki örnek yürütme çıkışında, desteklenen tek sürüm olarak V26 kalacak şekilde dosya boyutunun küçültüldüğü gösterilmektedir:
# Supported Google Ads API versions:
V23
V24
V25
V26
# Vendor folder size:
135M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 23 of Google Ads API...
Done
Removing support for the version 24 of Google Ads API...
Done
Removing support for the version 25 of Google Ads API...
Done
# Supported Google Ads API versions:
V26
# Vendor folder size:
60M ./vendor
Geliştirme ve üretim karşılaştırması
PHP, talimatları yürütmeden önce derleyen yorumlanan bir programlama dilidir. Bu, kaynak dosyaların sık sık değiştiği ve yürütme süresinin daha az önemli olduğu geliştirme aşamasında avantajlıdır. Üretim ortamlarında ise kararlılık ve performans öncelikli konular haline gelir.
Önbellek
Önbelleğe alma, önceden derlenmiş komut dosyası bayt kodunu paylaşılan bellekte depolayarak performansı ve kararlılığı artırdığı için önerilir.
OPcache, standart çözümdür ve varsayılan olarak PHP ile birlikte gelir.
Otomatik yükleme
Otomatik yükleme, önceden derlenmiş sınıf eşleme bilgilerini yükleyerek performansı ve kararlılığı artırı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. --optimize-autoloader veya --classmap-authoritative gibi özel Composer CLI seçenekleri, üretim derlemelerinde kullanıma hazır olarak sunulur.
Günlük Kaydı
Günlükçüleri üretimde ERROR veya WARNING gibi daha yüksek bir eşiğe ayarlamak, G/Ç ek yükünü ve bellek tüketimini azaltmaya yardımcı olur.
Daha fazla bilgi için Günlük kaydı kılavuzuna bakın.
Hata ayıklama ve profil oluşturma
Önemli ölçüde yürütme ek yükü getirdikleri için üretimde hata ayıklayıcı ve profil oluşturucu uzantılarını (Xdebug gibi) devre dışı bırakın.
Önceden Yükle
PHP 7.4'ten itibaren, sunucu başlatılırken komut dosyalarını belleğe önceden yüklemek için OPcache önceden yükleme kullanılabilir. Bu, standart OPcache önbelleğe alma işleminden bir adım daha ileri gider.
Önceden yükleme komut dosyası, uygulamanız için özel olarak tasarlanmalıdır. PHP istemci kitaplığı, bellek kullanımı ile performans kazancı arasındaki denge her projeye ve dağıtım ortamına özgü olduğundan genel bir önceden yükleme komut dosyası sağlamaz.