パフォーマンス

Perl のクライアント ライブラリを使用すると、最小限の構成で Google Ads API を簡単に操作できます。ただし、パフォーマンスは、ライブラリの使用方法と統合方法に大きく依存します。

これらのベスト プラクティスのほとんどは、すべての言語に適用できます。このガイドでは、Perl に固有の機能について説明します。

アプリケーションのプロファイリング

CPU とメモリの使用量の両方についてアプリケーションをプロファイリングして、パフォーマンスのボトルネックを特定します。Devel::NYTProf は、探索可能な強力で機能豊富な Perl ソースコード プロファイラです。

Perl のバージョン

通常、新しい Perl バージョンの方が全体的なパフォーマンスが向上するため、新しいバージョンに定期的にアップグレードすることをおすすめします。Perl の最新バージョンと、このライブラリに必要な最小バージョンについては、こちらこちらのページをご覧ください。

ロギング

ロギングを多用すると、実行時間の大幅な増加とメモリ消費が発生する可能性があります。本番環境のコードでは、ロギング レベルを WARN に設定することをおすすめします。

概要ロガーと詳細ロガーの構成について詳しくは、ロギング ガイドをご覧ください。

Search メソッドまたは SearchStream メソッド

Google Ads API には、オブジェクトを取得するための主なメソッドが 2 つあります。Search(ページネーションを使用する)と SearchStream(ストリーミングを使用する)です。SearchStreamSearch メソッドよりもパフォーマンスが優れていますが、Search メソッドが優先されるシナリオもあります。

これらの方法について詳しくは、こちらをご覧ください。

HTTP タイムアウト

Perl クライアント ライブラリには、クライアント レベルで HTTP タイムアウトを設定するサーフェスが用意されています。

my $api_client = Google::Ads::GoogleAds::GoogleAdsClient->new({
  # Set HTTP timeout to 5 minutes.
  http_timeout   => 300
});

デフォルト値は、Constants.pmDEFAULT_HTTP_TIMEOUT 設定に基づいて設定されます。API 呼び出しの最大時間を短く制限する必要がある場合は、値を小さく設定します。

タイムアウトを 2 時間以上に設定できますが、非常に長時間実行されるリクエストでタイムアウトが発生し、DEADLINE_EXCEEDED エラーが返されることがあります。このエラーが発生した場合は、リクエストを分割してチャンクを並行して実行します。これにより、長時間実行リクエストが失敗し、復元する唯一の方法がリクエストを最初から再度トリガーすることになる状況を回避できます。