[英]Why would a Firebase Cloud Function be much slower once deployed than in the emulator, other than cold starts?
我有一個 Firebase 雲 Function 可以解析一些 HTML 等等。 我已經測量了 HTML 解析方法本身,在 MacBook Pro 上的模擬器中大約需要 300 毫秒。 部署到 Firebase 似乎需要大約 4-8 秒,這對於我的應用程序來說不是可以容忍的持續時間。
我正在使用 Dart 使用 firebase_functions_interop 編寫我的 Firebase Cloud Functions 並使用Dart2JS編譯為 JS。 在不同環境之間執行截然不同的方法實際上是 Dart 內置的 HTML 解析方法。 我知道冷啟動是雲功能花費比預期更長的一個常見原因,但這似乎不是罪魁禍首,因為我明確測量解析 HTML 所需的時間,這就是我看到巨大區別。
是否可以預期 Cloud Function 在生產中的運行速度會比在 MacBook Pro 上慢得多?
部署firebase雲function時,可以自定義運行環境。 但是在這里,沒有CPU容量。 如果您直接查看 Cloud Function 文檔(Firebase Cloud Functions 由 Google Cloud Functions 支持),您可以看到 memory 的數量與 CPU 功率之間的相關性。
注意:memory 的 4Gb = 2CPU @2.4Ghz,而不是 1 CPU(一個線程)@4.8Ghz
所以現在,使用 2Gb 的 memory 部署您的 Firebase 雲 Function,速度應該會更好(默認為 256Mb)。 但請記住這一點:Cloud Function 是 mono CPU,並且限制為 2.4Ghz。 你的 macbook pro 應該有 8 個或 16 個 CPU,並具有 3.4Ghz 的處理能力。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.