Rendimento

La libreria client PHP semplifica le interazioni con l'API Google Ads con un configurazione del modello da parte tua. Tuttavia, le prestazioni dipendono molto da come di Cloud Shell viene utilizzata e integrata.

La maggior parte di queste best practice è applicabile in tutte le lingue. Questa guida illustra quelle specifiche di PHP.

Implementazione di Protobuf

Protobuf è utilizzato da gRPC e l'API Google Ads per i messaggi di richiesta e risposta. Due implementazioni sono disponibile, anche se quello scritto in C offre le prestazioni migliori.

Per ulteriori informazioni, consulta la guida di Protobuf.

Modalità operativa dell'interprete PHP

PHP è uno strumento di scripting linguaggio e ha molte operazioni a seconda dell'utilizzo. La CGI (Common Gateway Interface) offre un notevole vantaggio perché può condividere le risorse tra un'esecuzione e l'altra.

Versione PHP

È buona norma eseguire regolarmente l'upgrade a una versione PHP più recente, come al solito migliora le prestazioni generali. Elenco dei file PHP supportati le versioni secondarie.

Versioni dell'API Google Ads inutilizzate

Tutte le versioni della libreria client supportano più versioni dell'API Google Ads. Per ogni versione dell'API Google Ads supportata dalla libreria client, sono disponibili: pacchetti dedicati per la versione.

I pacchetti dedicati alle versioni dell'API Google Ads che non vengono utilizzate possono essere rimosso in modo sicuro dalla libreria client. Perché può essere utile velocizzare di esecuzione o di ridurre l'ingombro della memoria, la libreria client fornisce in modo programmatico.

Esempio

Supponiamo che tu stia implementando una libreria client che utilizza solo la libreria più recente Versione API: v17 e vuoi rimuovere il supporto per l'API inutilizzata Versioni API: v16 e v15.

Nel file composer.json del progetto, definisci uno script Composer (denominato) remove-google-ads-api-version-support) che sfrutta l'utilità fornita da nella libreria client, nella classe ApiVersionSupport:

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

Quindi, utilizza lo script Composer con i numeri di versione come parametri e stampa alcuni messaggi di stato:

# 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

L'output di esecuzione di esempio riportato di seguito indica una riduzione delle dimensioni del file di 50 MB e l'unica versione supportata rimanente è 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

Sviluppo e produzione

PHP è un linguaggio interpretato in quanto compila le istruzioni prima di eseguirle. Di solito vantaggiosa poiché, durante il periodo di sviluppo, le origini spesso cambiano durante l'esecuzione. il tempo non è così essenziale. In fase di produzione, però, è vero il contrario, perché la stabilità e le prestazioni sono diventate le preoccupazioni principali.

Cache

La memorizzazione nella cache è comune e altamente consigliata perché entrambi migliora le prestazioni e aumenta la stabilità archiviando istruzioni di script precompilate.

OPcache è il metodo di uso più comune soluzione ed è disponibile per impostazione predefinita.

Caricamento automatico

Il caricamento automatico è comune perché migliora le prestazioni e aumenta la stabilità grazie al caricamento informazioni precompilate sui corsi.

La libreria client PHP è conforme alla normativa PSR-4 per caricamento automatico e fornisce la definizione nell'ambito composer.json: . Opzioni dedicate di Composer, come --optimize-autoloader o --classmap-authoritative, ad esempio, può quindi essere e sono già state usate per subito.

Logging

L'impostazione dei logger a un livello elevato come ERROR può contribuire a ridurre i tempi di esecuzione l'overhead e il consumo di memoria.

Per ulteriori informazioni, consulta la Guida al logging.

Debug e profilazione

Consigliamo di disattivare gli strumenti di debug e profiler, in quanto di solito sono dotati dei tempi di esecuzione.

Precarica

Da PHP 7.4, OPcache precaricamento può essere utilizzato per precaricare gli script in memoria, facendo un passo in più rispetto al normale per la memorizzazione nella cache.

Uno script deve essere progettato per sfruttare questa funzionalità, ma il linguaggio la libreria client non lo fa poiché non esiste un modo generico per implementare OPcache il precaricamento e il compromesso tra l'utilizzo della memoria e il miglioramento delle prestazioni sono molto specifici per un dato progetto e tutta l'esecuzione.