La libreria client per Perl semplifica le interazioni con l'API Google Ads, con una configurazione minima da parte tua. Tuttavia, le prestazioni dipendono in larga misura da come viene utilizzata e integrata la libreria.
La maggior parte di queste best practice sono applicabili a tutte le lingue. Questa guida illustra quelli specifici di Perl.
Profilazione dell'applicazione
Esegui la profilazione della tua applicazione sia per l'utilizzo della CPU che 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 di Perl
È buona norma eseguire regolarmente l'upgrade a una versione più recente di Perl, in quanto di solito offre prestazioni complessive migliori. Consulta questa pagina per la versione più recente di Perl e la versione minima richiesta per la libreria.
Logging
La registrazione estesa 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.
Consulta la guida alla registrazione nel log per maggiori dettagli sulla configurazione dei logger di riepilogo e dettagliati.
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 prestazioni migliori rispetto al metodo Search
, ma potrebbero
esistere determinati scenari in cui il metodo Search
potrebbe essere preferibile.
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 è impostato in base all'impostazione DEFAULT_HTTP_TIMEOUT
in
Constants.pm.
Imposta un valore inferiore se devi imporre un limite più breve al tempo massimo per una chiamata API.
Puoi impostare il timeout su 2 ore o più, ma l'API potrebbe comunque andare in timeout per le richieste a esecuzione molto lunga e restituire un errore DEADLINE_EXCEEDED
.
Se si verifica questo errore, dividi la richiesta ed esegui i blocchi in parallelo. In questo modo, eviti la situazione in cui una richiesta a esecuzione prolungata non va a buon fine e l'unico modo per recuperarla è riavviarla dall'inizio.