Azure Web App 和 React SSR:初始加载时加载时间极慢
Azure Web App and React SSR: Extremely slow loading times on initial load
我对此很感兴趣,我设置了一个 Node 12 Azure Web 应用程序,在 React 中进行服务器端渲染。
但是,我无法理解为什么初始响应时间很慢(超过3分钟),但是在此之后,响应时间下降到大约1/2秒。
为什么初始响应这么慢?我是 Azure 和 SSR Web 应用程序的新手,但节点服务器是否只是从不活动状态关闭,每隔几分钟再次启动构建?
除了扩大网络应用程序之外,还有什么方法可以解决这个问题吗?
这是响应时间的图表:
应用程序启动时间长的常见原因是 node_modules 中的文件数量过多。应用程序会在启动时尝试加载其中的大部分文件。默认情况下,应用服务上的所有文件都存储在网络共享中(因此加载很多文件可能需要时间)。
1.If 你还没有这样做,你可以尝试延迟加载你的 node_modules 而不是在应用程序启动时加载所有模块.
对于延迟加载模块,应该在第一次执行模块代码之前在函数中实际需要模块时调用 require(‘module’)。看看,这是否有什么不同。
请检查 Always On -Settings/feature 是否已启用以及是否按预期加载。
如果可行,启用本地缓存(先测试,如果需要再利用)
本地缓存 - 将网络共享中的内容复制到 VM 上的本地磁盘。由于文件是本地文件,node_modules 的加载时间要快得多。
注意:函数应用或容器化应用服务应用不支持本地缓存,例如 Windows 容器或 Linux 上的应用服务。
- 您可以利用 应用服务诊断 获取有关该问题的更多详细信息。
我对此很感兴趣,我设置了一个 Node 12 Azure Web 应用程序,在 React 中进行服务器端渲染。
但是,我无法理解为什么初始响应时间很慢(超过3分钟),但是在此之后,响应时间下降到大约1/2秒。
为什么初始响应这么慢?我是 Azure 和 SSR Web 应用程序的新手,但节点服务器是否只是从不活动状态关闭,每隔几分钟再次启动构建?
除了扩大网络应用程序之外,还有什么方法可以解决这个问题吗?
这是响应时间的图表:
应用程序启动时间长的常见原因是 node_modules 中的文件数量过多。应用程序会在启动时尝试加载其中的大部分文件。默认情况下,应用服务上的所有文件都存储在网络共享中(因此加载很多文件可能需要时间)。
1.If 你还没有这样做,你可以尝试延迟加载你的 node_modules 而不是在应用程序启动时加载所有模块. 对于延迟加载模块,应该在第一次执行模块代码之前在函数中实际需要模块时调用 require(‘module’)。看看,这是否有什么不同。
请检查 Always On -Settings/feature 是否已启用以及是否按预期加载。
如果可行,启用本地缓存(先测试,如果需要再利用)
本地缓存 - 将网络共享中的内容复制到 VM 上的本地磁盘。由于文件是本地文件,node_modules 的加载时间要快得多。
注意:函数应用或容器化应用服务应用不支持本地缓存,例如 Windows 容器或 Linux 上的应用服务。
- 您可以利用 应用服务诊断 获取有关该问题的更多详细信息。