Rendimento

La libreria client per Perl facilita le interazioni con l'API Google Ads, consentendo una configurazione minima da parte tua. Tuttavia, le prestazioni dipendono molto da come viene utilizzata e integrata la libreria.

La maggior parte di queste best practice si applica a tutte le lingue. Questa guida illustra quelle specifiche di Perl.

Profilazione dell'applicazione

Profila l'applicazione sia per l'utilizzo di CPU sia per la memoria al fine di identificare i colli di bottiglia delle prestazioni. Devel::NYTProf è un profilatore di codice sorgente Perl potente e ricco di funzionalità, che puoi esplorare.

Versione Perl

È buona norma eseguire regolarmente l'upgrade a una versione di Perl più recente, poiché in genere offre prestazioni generali migliori. Consulta qui la versione più recente di Perl e la versione minima richiesta per la libreria in questa pagina.

Logging

Un logging esteso può comportare penalità significative in termini di tempo di esecuzione e consumo di memoria. Ti consigliamo di impostare il livello di logging su WARN per qualsiasi codice in produzione.

Per ulteriori dettagli sulla configurazione dei log di riepilogo e dettagli, consulta la guida a Logging.

Metodo di ricerca o SearchStream

L'API Google Ads fornisce due metodi principali per recuperare gli oggetti: Search (che utilizza l'impaginazione) e SearchStream (che utilizza i flussi). SearchStream offre prestazioni migliori rispetto al metodo Search, ma potrebbero esserci alcuni scenari in cui il metodo Search potrebbe essere preferibile.

Scopri di più sui due metodi qui.

Timeout HTTP

La libreria client Perl fornisce una piattaforma per l'impostazione dei timeout HTTP a livello di client:

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

Il valore predefinito è impostato in base all'impostazione DEFAULT_HTTP_TIMEOUT in Constants.pm. Imposta un valore più basso se devi applicare un limite più breve per il tempo massimo per una chiamata API.

Puoi impostare il timeout su un valore pari o superiore a 2 ore, ma l'API potrebbe comunque scadere in tempo per le richieste a lunga esecuzione e restituire un errore DEADLINE_EXCEEDED. Se riscontri questo errore, suddividi la richiesta ed esegui i blocchi in parallelo. In questo modo si evita che una richiesta a lunga esecuzione non vada a buon fine e l'unico modo per recuperarla è attivare nuovamente la richiesta dall'inizio.