性能

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 小时),根据 DEFAULT_HTTP_TIMEOUT 常量在 Constants.pm 中设置。 设置自定义客户端超时如果您需要对 API 调用的最长时间强制执行较短的 限制。

您可以将超时时间设置为 2 小时或更长时间,但 API 仍可能会使运行时间极长的请求超时,并返回 DEADLINE_EXCEEDED 错误。如果您遇到此错误,请将请求拆分为较小的块并并行执行。这样可以避免出现以下情况:运行时间较长的请求失败,而恢复的唯一方法是从头开始再次触发请求。