Firebase云函数生成的页面标记为减少服务器响应时间

Firebase云函数生成的页面标记为减少服务器响应时间,firebase,handlebars.js,pug,google-cloud-functions,template-engine,Firebase,Handlebars.js,Pug,Google Cloud Functions,Template Engine,我有一个Firebase网站项目,现在一切看起来都很好,除了Firebase云功能生成的页面标记为“减少服务器在pagespeed insights上的响应时间”。洞察的结果是0.5-1.5秒 静态页面在手机上的得分为99,在桌面上的得分为86。然而,使用云功能生成的页面,我在移动设备上得到的最高值是75,最低值降到30 以下是一些正在发生的事情的背景: 识别所请求的页面以准备Firestore查询所需的值 4个Firestore查询(3个集合冷启动可能是您的问题 如果您让一个云函数保持温暖,

我有一个Firebase网站项目,现在一切看起来都很好,除了Firebase云功能生成的页面标记为“减少服务器在pagespeed insights上的响应时间”。洞察的结果是0.5-1.5秒

静态页面在手机上的得分为
99
,在桌面上的得分为
86
。然而,使用云功能生成的页面,我在移动设备上得到的最高值是
75
,最低值降到
30

以下是一些正在发生的事情的背景:

  • 识别所请求的页面以准备Firestore查询所需的值

  • 4个Firestore查询(3个集合冷启动可能是您的问题

    如果您让一个云函数保持温暖,那么它将使包含该函数的容器保持温暖,以便下一个用户可以在温暖状态下使用该函数

    然而,如果有多个用户尝试使用云功能,它会将一个热容器分配给一个连接,然后将另外两个冷容器分配给其他用户。这是他们如何扩展的——构建更多的容器

    我假设发生的情况是,您的测试有时会连接到加热的容器上——当它们在使用时,测试必须等待其他容器上的冷启动

    通读

    新函数实例在两种情况下启动:

    自动创建新函数实例以适应负载,或偶尔替换现有实例时


    因此,请求页面是否一致(我在解决冷启动问题上的第二次尝试)技术上有助于预热功能?我是否需要长时间维护它以获得实际结果?请看一看。如果你正在预热功能,它将为下一个用户保温-我不确定速度测试是如何工作的-如果它对页面发出多个请求,那么它可以对第一个请求使用预热功能,即en cold功能用于后续请求。同时,如果用户试图在使用该功能的同时连接到该功能(以保持温暖),则保持该功能温暖然后,云函数将不得不为该请求构建一个冷容器。因此,您的计划任务和测试之间可能会发生冲突。函数将在20分钟后保持温暖,因此请尝试减缓您的预热请求。感谢非常有用的信息,我将阅读更多关于该主题的内容。是的,我做了一些测试,尝试在我的“备选版本”上进行了“多用户”测试,到目前为止,测试结果确实显示了一种冷启动行为,这解释了为什么pagespeed会有很高的分数,然后突然下降,但我现在无法平衡它,因为该网站的流量仍然很低。感谢提供的信息,真的很有帮助。