Node.js 使用';要求';在节点js内部获得更好的性能

Node.js 使用';要求';在节点js内部获得更好的性能,node.js,performance,v8,koa,Node.js,Performance,V8,Koa,我在控制器中使用了很多依赖项。使用下面的方法稍微提高性能是否是一个好的建议:(即控制器的延迟加载) 与常规方法不同的是: c = require('./testcontroller') c2 = require('./testcontroller2') //all other controllers app.use(route.get('/test', c.method) app.use(route.get('/test2', c2.method) 在我看来,传统的方式更好-你可能需要冗余

我在控制器中使用了很多依赖项。使用下面的方法稍微提高性能是否是一个好的建议:(即控制器的延迟加载)

与常规方法不同的是:

c = require('./testcontroller')
c2 = require('./testcontroller2')
//all other controllers

app.use(route.get('/test', c.method) 
app.use(route.get('/test2', c2.method)

在我看来,传统的方式更好-你可能需要冗余的东西(可能不会,因为最终会使用任何控制器),但在另一端-当应用程序重新启动时,它将是必需的


在我看来,运行时的性能比快速加载更重要,这是您在运行时需要的第一个建议。

在我看来,传统的方法更好-您可能需要冗余的东西(可能不会,因为最终会使用任何控制器),但另一方面-当应用程序重新启动时,它将是必需的


在我看来,运行时的性能比快速加载更重要,这是您在运行时需要的第一个建议。

在路由处理程序或中间件处理程序中使用
require()
。这是因为
require()
使用同步I/O,您不希望在任何路由处理程序中使用同步I/O

不那么坏的消息是,
require()
缓存结果,因此只有在第一次命中路由时才会命中,但大多数服务器设计人员宁愿在服务器启动时再命中一点,而不在任何路由处理程序或中间件中使用同步I/O


因此,有一个原因,公共方法就是公共方法,通常在服务器启动时加载模块。据推测,这是一个长时间运行的服务器进程,因此从长远来看,不加载模块并不会真正节省任何东西。如果有人使用它,它迟早会被加载。

在路由处理程序或中间件处理程序中使用
require()
不是一个好主意。这是因为
require()
使用同步I/O,您不希望在任何路由处理程序中使用同步I/O

不那么坏的消息是,
require()
缓存结果,因此只有在第一次命中路由时才会命中,但大多数服务器设计人员宁愿在服务器启动时再命中一点,而不在任何路由处理程序或中间件中使用同步I/O

因此,有一个原因,公共方法就是公共方法,通常在服务器启动时加载模块。据推测,这是一个长时间运行的服务器进程,因此从长远来看,不加载模块并不会真正节省任何东西。如果有人用过它,它迟早会被加载的

c = require('./testcontroller')
c2 = require('./testcontroller2')
//all other controllers

app.use(route.get('/test', c.method) 
app.use(route.get('/test2', c2.method)