Desempenho

A biblioteca de cliente para Perl facilita as interações com a API Google Ads, com uma configuração mínima. No entanto, a performance depende muito de como a biblioteca é usada e integrada.

A maioria dessas práticas recomendadas se aplica a todos os idiomas. Este guia aborda os que são específicos para Perl.

Como criar o perfil do seu aplicativo

Crie um perfil do seu aplicativo para uso de CPU e memória para identificar gargalos de desempenho. O Devel::NYTProf (link em inglês) é um poderoso analisador de código-fonte Perl com muitos recursos que você pode conferir.

Versão do Perl

É uma boa prática fazer upgrade regularmente para uma versão mais recente do Perl, já que ela geralmente tem um desempenho geral melhor. Consulte este link para conferir a versão mais recente do Perl e a versão mínima necessária para a biblioteca nesta página.

Logging

O registro extensivo pode gerar penalidades significativas no tempo de execução e no consumo de memória. Recomendamos definir o nível de registro como WARN para qualquer código em produção.

Consulte o guia de geração de registros para mais detalhes sobre a configuração de loggers de resumo e detalhes.

Método Search ou SearchStream

A API Google Ads oferece dois métodos principais para recuperar objetos: Search (que usa paginação) e SearchStream (que usa streaming). O SearchStream oferece melhor desempenho em relação ao método Search, mas pode haver alguns cenários em que o método Search pode ser preferido.

Saiba mais sobre os dois métodos neste link.

Tempo limite do HTTP

A biblioteca de cliente Perl fornece uma superfície para definir timeouts HTTP no nível do cliente:

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

O valor padrão é definido com base na configuração DEFAULT_HTTP_TIMEOUT em Constants.pm. Defina um valor menor se precisar aplicar um limite mais curto para o tempo máximo de uma chamada de API.

É possível definir o tempo limite para duas horas ou mais, mas a API ainda pode esgotar o tempo limite de solicitações extremamente longas e retornar um erro DEADLINE_EXCEEDED. Se você encontrar esse erro, divida a solicitação e execute os blocos em paralelo. Isso evita a situação em que uma solicitação de execução longa falha e a única maneira de recuperar é acionar a solicitação novamente desde o início.