gpt4 book ai didi

node.js - 在 Node js 中使用 'require' 以获得更好的性能

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:06 36 4
gpt4 key购买 nike

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

app.use(route.get('/test', function(){
c = require('./testcontroller')
c.method();
}) );
app.use(route.get('/test2', function(){
c2 = require('./testcontroller2')
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。

所以,公共(public)方法是公共(public)方法并且模块通常在服务器启动时加载是有原因的。据推测,这是一个长时间运行的服务器进程,因此从长远来看,不加载模块并不能真正保存任何内容。如果有人使用它,它迟早会被加载。

关于node.js - 在 Node js 中使用 'require' 以获得更好的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35164368/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com