gpt4 book ai didi

javascript - Node.js 性能优势

转载 作者:行者123 更新时间:2023-12-02 15:22:00 24 4
gpt4 key购买 nike

据我了解,Node.js 有一个事件循环的主线程,它处理所有传入请求并异步执行 IO,而传统的多线程 Web 服务器使用单独的线程处理每个传入请求(如果看到,则所有操作都是异步的)从主线程的 Angular 来看)。

就 IO 而言,由于 IO 操作在这两种情况下都是异步处理的,所以我不太明白 Node.js 如何在这里提供性能提升。

就 CPU 而言,Node.js 不就是为了更好的内存使用而牺牲响应能力吗?举个极端的例子,假设没有 IO,那么 Node.js 只是将多个线程的工作汇总为一个。

我认为 Node.js 的一个主要优点是将多线程编程细节隐藏在框架后面并简化程序员的工作。但有人能帮忙解释一下性能优势是什么吗?

感谢帮助。

最佳答案

Node.js 当然要求您以不会在主线程中进行密集计算的方式设计代码。您没有针对每个请求的自动线程,但如果有意义,您可以显式生成它们。

这个想法是,通常,响应请求的计算量非常小,因此通过让服务器处理其他请求,单个线程可以同时处理数十万个客户端而请求所需的任何冗长过程都是异步完成的。

Node.js(以及使用相同单线程设计的 nginx)比基于线程的服务器更快并且使用更少的资源,因为它们针对那些典型请求进行了优化。无论如何,当您确实需要线程时,它们仍然保持快速,但关键是,通常您不需要,而 nginx 是一个更好的例子,它针对提供静态资源而进行了优化,根本不需要任何计算。

此外,Node.js 应用程序使用相同的 JavaScript 上下文来处理每个请求,这在某些应用程序中可以在执行计算时节省大量开销。

关于javascript - Node.js 性能优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33969206/

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