性能

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 操作分组到一个 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 错误。如果您遇到此错误,请将请求拆分为多个较小的块,然后并行执行这些块。这样可避免出现以下情况:长时间运行的请求失败,而恢复的唯一方法是从头开始再次触发该请求。