PHP istemci kitaplığı, Google Ads API ile etkileşimi 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 bağlı olarak önemli ölçüde değişir.
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, gRPC ve Google Ads API tarafından istek ve yanıt mesajları için kullanılır. İki uygulama (yalnızca PHP ve C uzantısı) mevcuttur. 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 komut dosyası dilidir ve kullanıma bağlı olarak çeşitli işlem modlarına sahiptir. PHP-FPM (FastCGI İşlem Yöneticisi) veya kalıcı uygulama sunucuları, standart CGI'ye kıyasla önemli bir avantaja sahiptir. Bunun nedeni, kalıcı çalışan işlemlerinin, istekler arasında önbelleğe alınmış bayt kodunu (OPcache aracılığıyla) ve kaynakları yeniden kullanabilmesidir.
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ütme işlemini 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 uygulaması 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 adlı) 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, dosya boyutu küçültme işlemi gösterilmektedir. Desteklenen tek sürüm V26'dır:
# 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
PHP, talimatları yürütmeden önce derleyen bir yorumlanan 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
Üretimde hata ayıklayıcı ve profil oluşturucu uzantılarını (ör. Xdebug) devre dışı bırakın. Bu uzantılar önemli bir yürütme ek yükü oluşturur.
Önceden Yükle
PHP 7.4'ten itibaren, standart OPcache önbelleğe almanın bir adım ötesine geçerek sunucu başlatılırken komut dosyalarını belleğe önceden yüklemek için OPcache önceden yükleme kullanılabilir.
Ö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.