A biblioteca cliente para Perl facilita as interações com a Google Ads API oferecendo pouca configuração da sua parte. No entanto, o desempenho depende muito da forma como a biblioteca é usada e integrada.
A maioria destas práticas recomendadas é aplicável a todos os idiomas. Este guia aborda os específicos para Perl.
Como criar o perfil do seu aplicativo
Criar perfil do aplicativo em relação ao uso de CPU e memória para identificar gargalos de desempenho. O Devel::NYTProf é um criador de perfil de código-fonte Perl poderoso e repleto de recursos que você pode explorar.
Versão Perl
É uma prática recomendada fazer upgrade regularmente para uma versão mais recente do Perl, porque ela geralmente vem com um desempenho geral melhor. Consulte aqui a versão mais recente do Perl e a versão mínima necessária para a biblioteca nesta página.
Geração de registros
A geração de registros extensa pode gerar penalidades no tempo de execução e consumo de
memória significativas. Recomendamos definir o nível de geração de registros como WARN
para qualquer código em
produção.
Consulte o Guia de geração de registros para mais detalhes sobre a configuração dos loggers de resumo e de 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).
SearchStream
oferece melhor desempenho em relação ao método Search
, mas pode
haver determinados cenários em que o método Search
é preferível.
Saiba mais sobre os dois métodos aqui.
Tempo limite do HTTP
A biblioteca de cliente Perl fornece uma plataforma para definir tempos limite 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 menor para o tempo máximo de uma chamada de API.
É possível definir o tempo limite como duas horas ou mais, mas a API ainda pode expirar
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 longa duração falha e a única maneira de recuperar é acioná-la novamente desde o início.