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.