Performans

Perl için istemci kitaplığı, Google Ads API ile etkileşimi kolaylaştırır ve sizin tarafınızdan 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 sayfada, Perl'e özel performans yönergeleri ele alınmaktadır.

Uygulamanızın profilini oluşturma

Performans sorunlarını belirlemek için uygulamanızın hem CPU hem de bellek kullanımını profillendirin. Devel::NYTProf, yürütme süresini analiz etmek için kullanabileceğiniz, özelliklerle dolu bir Perl kaynak kodu profil oluşturucusudur.

Perl sürümü

Çalışma zamanı performansındaki iyileştirmelerden yararlanmak için düzenli olarak daha yeni bir Perl sürümüne yükseltin. En son sürümü CPAN Perl kaynak sürümlerinden indirin ve kitaplık için gereken minimum sürümü README gereksinimleri bölümünden kontrol edin.

Günlük Kaydı

Kapsamlı günlük kaydı, önemli yürütme süresi cezalarına ve bellek tüketimine neden olabilir. Üretimdeki tüm kodlar için günlük kaydı düzeyini WARN olarak ayarlayın.

Özet ve ayrıntı kaydedicileri yapılandırma hakkında daha fazla bilgi için Günlüğe kaydetme kılavuzu'na bakın.

SearchStream ile Arama karşılaştırması

Google Ads API, nesneleri almak için iki ana yöntem sunar: Search (sayfalandırma kullanır) ve SearchStream (akış kullanır). SearchStream, Search'dan daha iyi performans sağlar ancak Search'ın tercih edilebileceği belirli senaryolar vardır.

İki yöntemin ayrıntılı karşılaştırması için Akış kılavuzu'na bakın.

Yük optimizasyonu ve gruplandırma

Ağ yükünü ve bellek tüketimini en aza indirmek için:

  • Google Ads Sorgu Dili (GAQL) sorgularınızda yalnızca uygulamanızın ihtiyaç duyduğu belirli alanları isteyin.
  • Her değişiklik için ayrı istek göndermek yerine birden fazla değiştirme işlemini tek bir mutate isteğinde gruplandırın.

HTTP zaman aşımı

Perl istemci kitaplığı, istemci düzeyinde HTTP zaman aşımlarını yapılandırmak için bir ayar sağlar:

my $api_client = Google::Ads::GoogleAds::Client->new({
  # Set HTTP timeout to 5 minutes (300 seconds).
  http_timeout => 300,
});

Varsayılan değer, Constants.pm içindeki DEFAULT_HTTP_TIMEOUT sabiti temel alınarak 3600 saniye (1 saat) olarak ayarlanır. Bir API çağrısının maksimum süresine daha kısa bir sınır uygulamanız gerekiyorsa özel bir istemci zaman aşımı ayarlayın.

Zaman aşımını 2 saat veya daha fazla olarak ayarlayabilirsiniz ancak API, çok uzun süren isteklerde yine de zaman aşımına uğrayabilir ve DEADLINE_EXCEEDED hatası döndürebilir. Bu hatayla karşılaşırsanız isteği daha küçük parçalara bölüp paralel olarak çalıştırın. Bu sayede, uzun süren bir isteğin başarısız olduğu ve kurtarmanın tek yolunun isteği baştan tekrar tetiklemek olduğu durum önlenir.