Rendimento

La libreria client per Perl semplifica le interazioni con l'API Google Ads, con una configurazione minima da parte tua. Tuttavia, il rendimento dipende in modo significativo da come viene utilizzata e integrata la libreria.

La maggior parte delle best practice generali sono applicabili a tutte le lingue. Questa pagina illustra le indicazioni sul rendimento specifiche per Perl.

Profila l'applicazione

Profila l'applicazione per l'utilizzo della CPU e la memoria utilizzata per identificare i colli di bottiglia delle prestazioni. Devel::NYTProf è un profiler di codice sorgente Perl ricco di funzionalità che puoi utilizzare per analizzare il tempo di esecuzione.

Versione di Perl

Esegui regolarmente l'upgrade a una versione più recente di Perl per usufruire dei miglioramenti del rendimento di runtime. Scarica l'ultima release dalle release del codice sorgente Perl CPAN, e controlla la versione minima richiesta per la libreria nei requisiti del file README.

Logging

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

Per maggiori dettagli sulla configurazione dei logger di riepilogo e dettagli, consulta la guida Logging.

SearchStream e Search

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 a Search, anche se in alcuni scenari potrebbe essere preferibile Search.

Per un confronto dettagliato dei due metodi, consulta la guida allo streaming.

Ottimizzazione e batching dei payload

Per ridurre al minimo l'overhead di rete e il consumo di memoria:

  • Nelle query del linguaggio di query di Google Ads (GAQL), richiedi solo i campi specifici di cui ha bisogno la tua applicazione.
  • Raggruppa più operazioni di modifica in un'unica richiesta mutate anziché inviare singole richieste per ogni modifica.

Timeout HTTP

La libreria client Perl fornisce un'impostazione per la configurazione dei timeout HTTP a livello di client:

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

Il valore predefinito è 3600 secondi (1 ora), impostato in base alla DEFAULT_HTTP_TIMEOUT costante in Constants.pm. Imposta un timeout client personalizzato se devi applicare un limite inferiore al tempo massimo per una chiamata API.

Puoi impostare il timeout su 2 ore o più, ma l'API potrebbe comunque scadere per le richieste a esecuzione molto lunga e restituire un errore DEADLINE_EXCEEDED. Se riscontri questo errore, suddividi la richiesta in blocchi più piccoli ed eseguili in parallelo. In questo modo si evita la situazione in cui una richiesta a esecuzione lunga non va a buon fine e l'unico modo per recuperarla è attivare di nuovo la richiesta dall'inizio.