效能

Perl 用戶端程式庫可簡化與 Google Ads API 的互動,您只需進行最少設定。不過,效能表現很大程度上取決於程式庫的使用和整合方式。

大多數一般最佳做法適用於所有語言。本頁面提供 Perl 專屬的效能指南。

剖析應用程式

分析應用程式的 CPU 和記憶體用量,找出效能瓶頸。Devel::NYTProf 是功能豐富的 Perl 原始碼剖析器,可用於分析執行時間。

Perl 版本

請定期升級至新版 Perl,以提升執行階段效能。請從 CPAN Perl 來源版本下載最新版本,並在 README 需求中查看程式庫的最低版本需求。

記錄

大量記錄可能會導致執行時間大幅增加,並耗用大量記憶體。請將實際工作環境中任何程式碼的記錄層級設為 WARN。

如要進一步瞭解如何設定摘要和詳細記錄器,請參閱記錄指南。

SearchStream 與 Search

Google Ads API 提供兩種主要方法來擷取物件:Search (使用分頁) 和 SearchStream (使用串流)。SearchStream 的效能比 Search 更好,但在某些情況下,Search 可能是更好的選擇。

如要詳細比較這兩種方法,請參閱串流指南。

酬載最佳化和批次處理

為盡量減少網路負擔和記憶體用量,請採取下列做法:

  • 在 Google Ads 查詢語言 (GAQL) 查詢中,只要求應用程式需要的特定欄位。
  • 將多項異動作業分組為單一 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 小時),根據 Constants.pm 中的 DEFAULT_HTTP_TIMEOUT 常數設定。如要強制縮短 API 呼叫的最長時間限制,請設定自訂用戶端逾時。

您可以將逾時時間設為 2 小時以上,但 API 仍可能逾時執行時間極長的要求,並傳回 DEADLINE_EXCEEDED 錯誤。如果遇到這個錯誤,請將要求分割成較小的區塊,並平行執行。這樣一來,如果長時間執行的要求失敗,您就不必從頭再次觸發要求,才能復原。