パフォーマンス

Perl 用のクライアント ライブラリを使用すると、Google Ads API とのやり取りが簡単になり、構成も最小限で済みます。ただし、パフォーマンスはライブラリの使用方法と統合方法に大きく左右されます。

一般的なベスト プラクティスのほとんどは、すべての言語に適用できます。 このページでは、Perl 固有のパフォーマンス ガイドについて説明します。

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

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

Perl のバージョン

ランタイム パフォーマンスの改善を利用するには、定期的に新しい Perl バージョンにアップグレードしてください。最新リリースを CPAN Perl ソース リリースからダウンロードし、 ライブラリに必要な最小バージョンを README の要件で確認します。

ロギング

広範なロギングを行うと、実行時間のペナルティとメモリ使用量が大幅に増加する可能性があります。本番環境のコードでは、ロギングレベルを WARN に設定してください。

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

SearchStream と Search の比較

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

2 つの方法の詳細な比較については、ストリーミング ガイドをご覧ください。

ペイロードの最適化とバッチ処理

ネットワークのオーバーヘッドとメモリ使用量を最小限に抑えるには:

  • Google 広告 Query Language(GAQL)クエリで、アプリケーションに必要な特定のフィールドのみをリクエストします。
  • 変更ごとに個別のリクエストを送信するのではなく、複数のミューテート オペレーションを 1 つの mutate リクエストにグループ化します。

HTTP タイムアウト

Perl クライアント ライブラリには、クライアント レベルで HTTP タイムアウトを構成するための設定が用意されています。

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

デフォルト値は 3600 秒(1 時間)で、 DEFAULT_HTTP_TIMEOUT 定数にConstants.pm基づいて設定されます。 API 呼び出しの最大時間を短く制限する必要がある場合は、カスタム クライアント タイムアウトを設定します。

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