Desempenho

A biblioteca cliente PHP facilita as interações com a API do Google Ads com o mínimo configuração da sua parte. No entanto, o desempenho depende muito da forma é usada e integrada.

A maioria destas práticas recomendadas é aplicável para todos os idiomas. Este guia aborda os que são específicos ao PHP.

Implementação do protobuf

Protobuf é usado pelo gRPC e a API Google Ads para mensagens de solicitação e resposta. Duas implementações são disponíveis, embora o escrito em C tenha o melhor desempenho.

Consulte o guia do Protobuf para mais informações.

Modo de operação do interpretador do PHP

O PHP é uma ferramenta de scripts versátil linguagem de programação e tem muitas operações personalizados de acordo com o uso. PHP O CGI (Common Gateway Interface) tem uma vantagem importante porque pode compartilhar entre as execuções.

Versão do PHP

É uma prática recomendada fazer upgrade regularmente para uma versão mais recente do PHP, pois geralmente resulta em um desempenho geral melhor. Lista de PHP compatíveis padrão.

Versões da API Google Ads não usadas

Todas as versões da biblioteca de cliente são compatíveis com várias versões da API Google Ads. Para cada versão da API Google Ads compatível com a biblioteca de cliente, há pacotes dedicados para a versão.

Os pacotes dedicados às versões da API do Google Ads que não são usados podem ser removido da biblioteca de cliente com segurança. Como pode ser útil acelerar ou reduzir o consumo de memória, a biblioteca de cliente fornece utilitários para de forma programática.

Exemplo

Suponha que você esteja implementando a biblioteca de cliente que usa apenas a versão mais recente A versão da API v17 e você quer remover a compatibilidade com as APIs Versões da API: v16 e v15

No arquivo composer.json do projeto, defina um script do Composer (chamado remove-google-ads-api-version-support) que usa o utilitário fornecido pelo a biblioteca de cliente, na classe ApiVersionSupport:

"scripts": {
  "remove-google-ads-api-version-support": [
    "Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
  ]
}

Em seguida, use o script do Composer com os números de versão como parâmetros e imprima algumas mensagens de status:

# Change the current directory to the project directory.
cd /path/to/the/project

# Install the project.
composer install

# Output the vendor folder size and the list of Google Ads API versions that are
# supported before removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

# Use the Composer script to remove the unused versions v15 and v16 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 15 16

# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

O exemplo de saída da execução abaixo indica uma redução de 50 milhões no tamanho do arquivo, somente a versão compatível restante é V17:

# Supported Google Ads API versions:
V15
V16
V17
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 15 of Google Ads API...
Done
Removing support for the version 16 of Google Ads API...
Done
# Supported Google Ads API versions:
V17
# Vendor folder size:
60M     ./vendor

Desenvolvimento versus produção

PHP é uma linguagem interpretada porque compila as instruções antes de executá-las. Isso geralmente é vantajoso porque, durante o desenvolvimento, as origens muitas vezes mudam durante a execução o tempo não é tão crucial. No entanto, o oposto é verdadeiro no momento da produção, a estabilidade e o desempenho são as principais preocupações.

Cache

O armazenamento em cache é comum e altamente recomendado porque melhora o desempenho e aumenta a estabilidade ao armazenar instruções de script pré-compiladas.

O OPcache é o mais usado e está disponível por padrão.

Carregamento automático

O carregamento automático é comum porque melhora o desempenho e aumenta a estabilidade ao carregar informações pré-compiladas sobre classes.

A biblioteca de cliente PHP está em conformidade com PSR-4 para e fornece a definição como parte do composer.json . Opções dedicadas do Composer, como --optimize-autoloader ou --classmap-authoritative, por exemplo, podem ser pronto para uso.

Logging

Configurar os loggers em um nível alto, como ERROR, pode ajudar a reduzir o tempo de execução e consumo de memória.

Consulte o Guia de geração de registros para mais informações.

Depuração e criação de perfis

Recomendamos desativar as ferramentas do depurador e do criador de perfil, porque elas geralmente vêm com sobrecarga no tempo de execução.

Pré-carregar

Desde o PHP 7.4, o OPcache pré-carregamento pode ser usado para pré-carregar scripts na memória, indo um passo além armazenamento em cache.

É preciso criar um script para aproveitar esse recurso, mas o PHP já que não existe uma maneira genérica de implementar o OPcache pré-carregamento, e a compensação entre o uso de memória e o ganho de desempenho é altamente específicos para um determinado projeto e execução.