详解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的使用的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

node.js中lts和current有什么区别

express中间件body-parser的实现方法

node.js和java后台服务器的简单比较

node.js“多线程”如何处理高并发任务?

使用node.js “debug”模块避免日志污染应用程序日志

http协议发展过程一览

一些调试 node.js 程序的快捷方法

nodejs如何升级版本?两种升级方法分享

npm机制深入理解

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

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




打赏

取消

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

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

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

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

评论

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