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 錯誤。如果遇到這個錯誤,請將要求分割成較小的區塊,並平行執行。這樣一來,如果長時間執行的要求失敗,您就不必從頭再次觸發要求,才能復原。