为什么 Firebase 云函数部署后会比在模拟器中慢得多(除了冷启动之外)?

Bry*_*ill 4 dart firebase dart2js google-cloud-functions

我有一个 Firebase Cloud Function,可以解析一些 HTML 等内容。我测量了 HTML 解析方法本身,在 MacBook Pro 上的模拟器中大约需要 300 毫秒。部署到 Firebase 时似乎需要大约 4-8 秒,这对于我的应用程序来说不是可容忍的持续时间。

我正在使用 Dart 使用firebase_functions_interop编写我的 Firebase 云函数,并使用 Dart2JS 编译为 JS。在环境之间表现截然不同的方法实际上是 Dart 的内置 HTML 解析方法。我知道冷启动是云函数花费时间超过预期的常见原因,但这似乎不是罪魁祸首,因为我明确测量了解析 HTML 所需的时间,这就是我看到的巨大时间不同之处。

云函数在生产环境中的运行速度是否会比在 MacBook Pro 上慢得多?

gui*_*ere 5

当您部署Firebase云函数时,您可以自定义运行时环境。但这里没有CPU 容量。如果您直接查看Cloud Function 文档(Firebase Cloud Functions 由 Google Cloud Functions 支持),您可以看到内存数量和 CPU 功率之间的相关性。

注意:4Gb 内存 = 2CPU @2.4Ghz,而不是 1 个 CPU(一个线程)@4.8Ghz

所以现在,使用 2Gb 内存部署 Firebase Cloud Function,速度应该会更好(默认情况下为 256Mb)。但请记住这一点:Cloud Function 是单核 CPU,并且仅限于 2.4Ghz。您的 MacBook Pro 应具有 8 或 16 个 CPU,并且具有 3.4Ghz 的处理能力。

  • 这产生了巨大的变化。以前需要 4-8 秒解析 HTML 文档,现在已缩短至 250 毫秒左右。我不知道你可以(间接)配置 CPU 容量!感谢您的信息。 (2认同)