성능

PHP 클라이언트 라이브러리는 최소한의 이 구성을 사용할 수도 있습니다 그러나 성능은 사용 및 통합됩니다.

대부분의 권장사항이 적용됩니다. 모든 언어로 지원됩니다 이 가이드에서는 PHP와 관련된 사항에 대해 설명합니다.

Protobuf 구현

ProtobufgRPC에서 사용됨 Google Ads API에 사용할 수 있습니다. 두 가지 구현은 C로 작성된 것이 더 나은 성능을 발휘합니다.

자세한 내용은 Protobuf 가이드를 참고하세요.

PHP 인터프리터의 작업 모드

PHP는 다목적 스크립팅으로 언어를 지원하며 다양한 작업을 모드를 사용합니다. 299필리핀 공용 게이트웨이 인터페이스 (CG, Common Gateway Interface)는 실행할 수도 있습니다

PHP 버전

평소처럼 최신 PHP 버전으로 정기적으로 업그레이드하는 것이 좋습니다. 전반적인 성능이 더 좋습니다 지원되는 PHP 목록 버전을 참조하세요.

사용하지 않는 Google Ads API 버전

클라이언트 라이브러리의 모든 버전은 여러 Google Ads API 버전을 지원합니다. 클라이언트 라이브러리에서 지원되는 각 Google Ads API 버전에 대해 버전 전용 패키지입니다

사용하지 않는 Google Ads API 버전 전용 패키지는 클라이언트 라이브러리에서 안전하게 삭제됩니다. 속도를 높이는 것이 유용할 수 있기 때문에 메모리 공간을 줄이기 위해, 클라이언트 라이브러리는 실행할 수 있습니다

최신 API 버전: v17, 사용하지 않는 API에 대한 지원을 삭제하려고 함 API 버전: v16v15입니다.

프로젝트의 composer.json 파일에서 Composer 스크립트 (이름: remove-google-ads-api-version-support)에서 제공되는 클래스의 클라이언트 라이브러리 ApiVersionSupport:

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

그런 다음 버전 번호가 포함된 Composer 스크립트를 매개변수로 사용하고 출력합니다. 몇 가지 상태 메시지:

# 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

아래의 샘플 실행 출력은 파일 크기가 50M 감소했음을 나타내고 지원되는 남은 버전은 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

개발 및 프로덕션 비교

PHP는 해석된 언어 명령을 실행하기 전에 먼저 명령을 컴파일한다는 것입니다. 일반적으로 개발 중에는 실행 도중에 소스가 변경되는 경우가 많기 때문에 시간은 그렇게 중요하지 않습니다. 그러나 프로덕션 단계에서는 안정성과 성능이 가장 중요합니다.

캐시

캐싱은 성능을 향상시켜 주므로 일반적이며 권장됩니다. 사전 컴파일된 스크립트 명령을 저장하여 안정성을 높일 수 있습니다.

OPcache는 기본적으로 사용 가능합니다

자동 충전

자동 충전은 일반적임 로드를 통해 성능을 개선하고 안정성을 향상시키므로 클래스에 관한 사전 컴파일된 정보를 제공합니다.

PHP 클라이언트 라이브러리는 PSR-4를 준수하며 자동 로드를 사용하고, composer.json 파일에서 참조됩니다. Composer의 전용 옵션(예: 예를 들어 --optimize-autoloader 또는 --classmap-authoritative는 즉시 사용 가능합니다

로깅

로거를 ERROR와 같이 높은 수준으로 설정하면 실행 시간을 줄일 수 있습니다. 메모리 소비를 줄이는 데 도움이 될 수 있습니다

자세한 내용은 Logging 가이드를 참고하세요.

디버깅 및 프로파일링

디버거 및 프로파일러 도구는 일반적으로 함께 제공되는 기능이므로 사용 중지하는 것이 좋습니다. 실행 시간 오버헤드가 발생할 수 있습니다

프리로드

PHP 7.4 이후부터 OPcache는 미리 로드 메모리에 스크립트를 미리 로드하는 데 사용할 수 있으므로 일반적인 제공합니다

스크립트는 이 기능을 활용하도록 설계되어야 하지만 PHP는 클라이언트 라이브러리가 작동하지 않는 이유는 OPcache를 구현하는 일반적인 방법이 없기 때문입니다. 메모리 사용량과 성능 향상 간의 절충안은 특정 프로젝트 및 실행에 따라 크게 달라집니다