详解Node.js Buffer的使用


当前第2页 返回上一页

2.png

使用Buffer,QPS达到7130.05,传输率为71822.74KB每秒。
性能是原来的177%,极大的节省了服务器资源。
上面这个对比示例参考于《深入浅出Node JS》。

那么问题来了,为什么会有这么大的性能提升呢?

道理其实很简单,在NodeJS中,进行http传输时,若返回的类型为string,则会将string类型的参数,转换为Buffer,通过NodeJS中的Stream流,一点点的返回给客户端。如果我们直接返回Buffer类型,就没有了转换操作,直接返回,减少了CPU的重复使用率。这一部分逻辑见Node源码https://github.com/nodejs/node/blob/v10.9.0/lib/_http_outgoing.js#L612

在上面性能对比示例中,返回string时,每次请求都需要将string装换成Buffer返回;而直接返回Buffer时,这个Buffer是我们启动服务时就存放在内存中的,每次请求直接返回内存中的Buffer即可,因此Buffer使用前后QPS提升了很多。

因此,我们在写业务代码时,部分资源可以预先转换为Buffer类型(如js、css等静态资源文件),直接返回buffer给客户端,再比如一些文件转发的场景,将获取到的内容储存为Buffer直接转发,避免额外的转换操作。

参考资料:

  • http://nodejs.cn/api/buffer.html
  • https://book.douban.com/subje...

本文转载自:https://segmentfault.com/a/1190000016056466

更多编程相关知识,可访问:编程教学!!

以上就是详解Node.js Buffer的使用的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

nodejs怎么实现对图片进行批量裁剪?

node.js 中间件的工作原理

nodejs模块的简单理解(附示例)

一文搞懂node.js中的事件循环

nodejs和vuejs之间的差异

nodejs http请求相关的总结介绍

为什么要用node.js?哪些场合可以使用 node.js

node.js搭建web服务器的方法

如何利用nvm工具来管理node版本?方法介绍

了解node.js中的stream

更多相关阅读请进入《node.js》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...