使用多个中间件对应用程序性能有何影响?或者多少中间件对应用程序性能有好处? [关闭]

Posted

技术标签:

【中文标题】使用多个中间件对应用程序性能有何影响?或者多少中间件对应用程序性能有好处? [关闭]【英文标题】:what can be the effect on performance of app for using multiple middleware? or what count of middleware would be good for app performance? [closed] 【发布时间】:2021-07-02 21:23:00 【问题描述】:

根据http://expressjs.com/en/4x/api.html#middleware-callback-function-examples 和https://expressjs.com/en/guide/using-middleware.html 提到的文档,可以使用多个中间件。 但是,如果我在单个路由(路由器级别)中使用 100 个中间件,那么它会影响应用程序的性能。 或者任何最大数量的中间件可以在单个路由中使用?

【问题讨论】:

当然,你可以使用100个中间件。对应用程序性能的影响取决于中间件的作用。如果他们都只是调用next,那么性能损失大约是 100-300 次额外的函数调用(取决于中间件的实现方式,我不知道)。我投票结束这个过于广泛/投机/思想实验。你有具体的问题要解决吗? 【参考方案1】:

您可以安装的中间件处理程序的数量没有编码限制。

您可以使用 100 个,但我认为如果您认真考虑单个路由上的 100 个单独的中间件处理程序,您可能会从不同的设计中受益。

是的,如果所有中间件处理程序都实际运行并查看请求,那么对于同一条路由都有无数的中间件处理程序会影响性能。你正在执行 100 个函数。这不是免费的。

【讨论】:

以上是关于使用多个中间件对应用程序性能有何影响?或者多少中间件对应用程序性能有好处? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 3 应用程序中使用 require_dependency 对性能有何影响?

通用选择器对性能有何影响?

过度学习对学习迁移有何影响?

在 web2py 中使用“rows.render()”对性能有何影响?

在 32 位系统上使用 int64_t 而不是 int32_t 对性能有何影响?

复合索引的顺序在 MongoDB 性能方面有何影响?