`
jacksonren1987
  • 浏览: 37748 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

从性能角度看Node.js---《Node.js实战(第2季)》试读

 
阅读更多

作为一个还算资深的测试人员,除了对测试技术的热衷追求,还有对新技术的渴望。由于工作中涉及大量的性能测试工作,也对所有可以优化性能的开发框架、IO平台都有一定的向往。Node.js恰好是其中之一,也是进来最流行的基于javascript建立的平台。

 

Node.js 是一种建立在Google Chrome’s v8 engine上的 non-blocking (非阻塞), event-driven (基于事件的) I/O平台。以事件驱动为核心,单线程,单进程。Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计。对于高并发的解决方案,传统的架构是多线程模型,也就是为每个业务逻辑提供一个系统线程,通过系统线程切换来弥补同步式 I/O 调用时的时间开销。Node.js 使用的是单线程模型,对于所有 I/O 都采用异步式的请求方式,避免了频繁的上下文切换。Node.js 在执行的过程中会维护一个事件队列,程序在执行时进入事件循环等待下一个事件到来,每个异步式 I/O 请求完成后会被推送到事件队列,等待程序进程进行处理。事件驱动机制是Node.js通过内部单线程高效率地维护事件循环队列来实现的,没有多线程的资源占用和上下文切换,这意味着面对大规模的http请求,Node.js凭借事件驱动搞定一切。因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求。可以通过运行多个Node.js进程的方式来有效利用多个CPU。

 

然而就像试读章节中所说,往往在互联网后端架构,不可能一下子切换到Node.js,比如原有的系统是用java开发的,但在一些非常适合Node.js发挥场景的地方修改为Node.js来开发。那么两者之间的通信就成了一个非常重要的课题,既要保证不同语言的兼容性,又要保证其性能消耗。

 

试读章节中给我们提供了一个方法,就是使用RabbitMQ队列,当然,也不仅仅限于这种队列,有更多的队列都可以使用。以Node.js作为生产者,以其他语言底层为消费者,反之亦然。这样由于双方都是使用HTTP协议,没有任何障碍;同时又具有了不错的性能,利用HTTP协议的keepalive可以免去多次重复创建和断开连接的开销。

 

Node.js仍然在不断发展中,相信未来Node.js会成为在javascript端最重要的平台,甚至某些程度上取代java的部分效能。

0
0
分享到:
评论

相关推荐

    Node.js(node-v16.15.1-linux-x64.tar.xz)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js(node-v16.15.1-linux-armv7l.tar.xz)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js(node-v16.15.1-x64.msi)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    node-v18.16.0-win-x64

    Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展...

    Node.js(node-v16.15.1-win-x64.zip)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    9.3 开发路由(下)|广场页|Node.js-Koa2框架从零开发仿新浪微博项目实战

    9.3_开发路由(下)|广场页|Node.js-Koa2框架从零开发仿新浪微博项目实战

    5.18 总结|用户管理|Node.js-Koa2框架从零开发仿新浪微博项目实战

    5.18_总结|用户管理|Node.js-Koa2框架从零开发仿新浪微博项目实战

    Node.js(node-v16.15.1-linux-arm64.tar.xz)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    node-v12.18.3-x64_nodejs_Node.js_

    3. **V8引擎**:Node.js使用谷歌的V8 JavaScript引擎,它能快速地编译和执行JavaScript代码,提供了高性能的优势。 4. **模块化**:Node.js拥有强大的模块系统,使用`npm`(Node Package Manager)来管理和分享代码...

    node-v16.20.0-darwin-x64.tar.gz

    Node.js 是一个强大的开源开发平台,它允许开发者使用 JavaScript 编程语言进行服务器端编程,打破了 JavaScript 仅限于浏览器的局限。这个标题 "node-v16.20.0-darwin-x64.tar.gz" 提供了关于 Node.js 版本和操作...

    nodejs(node-v16.13.2-x64.msi)-(node-v18.12.1-x64.msi)

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 进行编程,极大地扩展了 JavaScript 的应用范围。Node.js 的设计思想是事件驱动、非阻塞I/O模型,这使得它在...

    node-v16.14.2-win-x64.7z

    这个版本号中的“v16.14.2”表明这是Node.js的16th重大版本的第14次次要更新和第二次微小更新。 描述中提到的 "Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时",这揭示了Node.js的核心特性。V8引擎是...

    node-v16.14.0-x64.zip

    Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者在服务器端运行JavaScript代码,极大地拓展了JavaScript的应用领域。这个版本号揭示了这是2022年的一个稳定版本,因为Node.js遵循奇数版本为主...

    Node.js(node-v16.15.1-win-x86.zip)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    node-v14.16.0-x64

    标题中的"node-v14.16.0-x64"指的是Node.js的特定版本,一个流行的开源JavaScript运行环境,用于构建服务器端和网络应用。这个版本号代表着它属于v14系列,具体是14.16.0版本,且是针对64位(x64)操作系统的构建。 ...

    node-v12.22.12-x64.7z

    Node.js 是一个强大的开源开发平台,它允许开发者使用 JavaScript 编程语言进行服务器端编程,打破了JavaScript只能在浏览器中运行的局限。这个标题"node-v12.22.12-x64.7z"指的是Node.js的一个特定版本,即12.22.12...

    node-v13.14.0-x64.msi

    2. ES模块支持:Node.js v13开始逐步支持ES模块,这是JavaScript标准的一部分,让开发者可以直接使用import和export语法,提高代码组织和可维护性。 3. V8更新:V8引擎的更新带来了一系列新的JavaScript语言特性,如...

    node-v14.15.1-win-x64

    标题 "node-v14.15.1-win-x64" 指的是 Node.js 的一个特定版本,其中包含了适用于 Windows x64 平台的二进制文件。Node.js 是一个开源、跨平台的 JavaScript 运行环境,它允许开发者在服务器端执行 JavaScript 代码...

    node-v16.14.2-x64

    Node.js 社区庞大且活跃,拥有丰富的第三方模块(npm 包)供开发者使用,覆盖了从数据库连接到构建工具的各种功能。 在压缩包 "node-v16.14.2-x64" 内,我们预期会找到以下组件: 1. 安装程序或可执行文件:这是...

    Node.js(node-v16.15.1-x86.msi)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

Global site tag (gtag.js) - Google Analytics