为什么猫鼬包从网络驱动器加载很慢?

Why is mongoose package very slow to load from network drive?

当启动存储在我的网络驱动器上的 NodeJS 应用程序时,它需要猫鼬(也在同一网络驱动器上的 node_modules 中),应用程序启动大约需要 15-20 秒。 (本地驱动器上的测试应用加载 mongoose much 更快。) 我的网络驱动器位于 100Mbit 有线以太网网络上,根据我的测试,实际传输速度约为 80Mbit。 Mongoose 包本身只有 1.75MB 左右。它是否真的加载了 150MB 的其他模块?还是我可以调整或改进的其他事情?

感谢任何提示。

不是带宽,而是延迟,这通常是跨网络工作时的瓶颈。

NodeJS,由于它的模块化性质,天生就是文件系统繁重的;一个典型的 node_modules 文件夹可以包含数千个 .js 小文件,访问它们需要多次往返文件系统,这可能会非常慢。

要仅加载 mongoose 依赖项,需要访问 452 .js 个文件。

此外,NodeJS 在搜索 .js 文件时使用启发式方法,因为可以采用不同的方式构建 Node 项目。这需要在读取特定文件之前先列出一个目录(因此每个文件需要额外往返一两次)。

要感受一下,请尝试通过网络复制 1,000 个小文件。平均吞吐量将远低于单个大文件。