Rendimento

La libreria client per Perl semplifica le interazioni con l'API Google Ads, con 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 è applicabile a tutte le lingue. Questa guida illustra quelle specifiche per Perl.

Profilazione dell'applicazione

Esegui il profiling dell'applicazione per l'utilizzo della CPU e della memoria per identificare i colli di bottiglia delle prestazioni. Devel::NYTProf è un potente profiler del codice sorgente Perl ricco di funzionalità che puoi esplorare.

Versione Perl

È buona norma eseguire regolarmente l'upgrade a una versione più recente di Perl, in quanto in genere offre prestazioni complessive migliori. Visita questa pagina per trovare la versione più recente di Perl e la versione minima richiesta per la libreria in questa pagina.

Logging

La registrazione estesa può comportare penalizzazioni significative del tempo di esecuzione e un consumo di memoria. Ti consigliamo di impostare il livello di logging su WARN per qualsiasi codice in produzione.

Per maggiori dettagli sulla configurazione dei logger di riepilogo e dettagliati, consulta la guida al logging.

Metodo Search o SearchStream

L'API Google Ads fornisce due metodi principali per recuperare gli oggetti: Search (che utilizza la paginazione) e SearchStream (che utilizza lo streaming). SearchStream offre un rendimento migliore rispetto al metodo Search, ma in alcuni scenari potrebbe essere preferito il metodo Search.

Puoi scoprire di più sui due metodi qui.

Timeout HTTP

La libreria client Perl fornisce un'interfaccia per impostare i 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 viene impostato in base all'impostazione DEFAULT_HTTP_TIMEOUT in Constants.pm. Imposta un valore inferiore se devi applicare un limite più breve al tempo massimo per una chiamata API.

Puoi impostare il timeout su almeno 2 ore, ma l'API potrebbe comunque scadere per le richieste estremamente lunghe e restituire un errore DEADLINE_EXCEEDED. Se si verifica questo errore, suddividi la richiesta ed esegui i chunk in parallelo. In questo modo, eviti la situazione in cui una richiesta di lunga esecuzione non va a buon fine e l'unico modo per recuperare è attivare di nuovo la richiesta dall'inizio.