位置: 编程技术 - 正文

Node.js 的异步 IO 性能探讨(nodejs 异步io底层原理)

编辑:rootadmin

推荐整理分享Node.js 的异步 IO 性能探讨(nodejs 异步io底层原理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs异步编程及原理,nodejs异步处理执行顺序,nodejs异步读取数据库,nodejs 异步io底层原理,nodejs异步读取数据库,nodejs 异步io底层原理,nodejs异步原理,nodejs 异步io底层原理,内容如对您有帮助,希望把文章链接给更多的朋友!

Python 和 Ruby 也有这样的框架,但因为在实际使用中会不可避免地用到含有同步代码的库,因此没能成长起来,而在 Node.js 之前,JavaScript 的服务器端编程几乎是空白,所以 Node.js 才得以建立起了一个所有 IO 均为异步的代码库。

大部分 Web 应用的瓶颈都在 IO, 即读写磁盘,读写网络,读写数据库。使用怎样的策略等待这段时间,就成了改善性能的关键点。

Node.js 的异步 IO 性能探讨(nodejs 异步io底层原理)

PHP 的策略:多进程运行,直接原地等待 IO 完成。缺点:多个进程会消耗多份内存,进程间难以共享数据。C/C++ 通常的策略:多线程运行,程序自己维护锁的状态。缺点:开发成本高,容易出错,不易调试。Python(Tornado): 多个请求在单个进程中轮流执行,遇到 IO 时切换到另一个请求。缺点:对于单个请求而言,依然没有最高效地利用时间。何谓「最高效地利用时间」?比如现在有两个不相关的数据库查询,在 PHP 中通常会先执行一个,执行完成后再执行第二个(总时间是 a + b). 显然这不是最高效的,应该同时执行两个查询,时间是 max(a, b).

Python 和其他支持多线程的语言的问题就在于,在语言层面,程序员很难告诉虚拟机,应当将两个操作同时执行,即使有办法,也相当麻烦,大多数人懒得去用(也不值得去用)。而因为 Node.js 丧心病狂地强制所有 IO 异步执行,Node.js 的程序员也可以说是轻车熟路,配合一些改善代码可读性库(promise, async), 可以很轻松地让不相干的操作并行执行。

上面讲了异步 IO 的实现,那么异步 IO 的优势究竟体现在哪里呢。实际上异步 IO 并不能神奇地减轻服务器的压力,该加服务器还是一样要加服务器,只不过异步 IO 会减少单个请求的时间,去掉单个请求中那些无意义的等待时间。所以单位时间内处理的请求没有变化,但每个请求的处理时间却减少了。从这个角度,服务器也节约了一些资源——即维持每个请求的连接消耗的内存。

吐槽一下我所了解的Node.js 首先是性能,用起来感觉Node.js的性能并没有想象中那么好。内存占用差不多和Ruby一个等级,比Python,PHP要多。计算性能(即CPU使用)上,纯计算并没有太大

node.js中使用q.js实现api的promise化 关于啥是promise以及promise解决的是啥问题,敬请体验node的回调异步编码大法,顺带移步

nodejs命令行参数处理模块commander使用实例 诚然,之前处理都是使用内置的process.agrv,这个能work,但是不好使,于是tj大神给写了一个,mygod,完全的高大上:1、安装npminstallcommander2、option解析Options

标签: nodejs 异步io底层原理

本文链接地址:https://www.jiuchutong.com/biancheng/374284.html 转载请保留说明!

上一篇:2014年最火的Node.JS后端框架推荐(2014年最火的英文歌)

下一篇:吐槽一下我所了解的Node.js(我吐槽你)

  • 注会与税务师有什么区别
  • 个人独资企业怎么取钱
  • 销售商品收到转账支票计入什么科目
  • 签三方协议需要什么资料
  • 记账凭证背面怎么填写
  • 人员处于银行代扣报盘期间什么意思
  • 销售收入是不是营业收入
  • 通行费发票勾选认证有多少就可以抵扣多少吗
  • 取得虚开发票所得税分录如何处理?
  • 业务招待费税前扣除标准是
  • 消费税征收项目
  • 计提坏账准备为什么要加借方
  • 上月未抵扣完的进项税额
  • 租赁的房子
  • 怎么从银行买承兑汇票
  • 公司债权转让如何处理
  • 由于生产工艺改进引起建筑物设备陈旧
  • 事业单位非税收入包括哪些
  • 车间报废产品改善方式
  • 电力公司安装变压器要多少钱
  • 个人所得税返还奖励财务人员做账
  • 收到房费的专用发票能抵扣吗?
  • 外商投资企业外债额度
  • 收到未知款项如何做账
  • 事业单位存货包括
  • 交通定额发票税率
  • 年初未交增值税借方怎么处理
  • 电脑重启后分辨率没有1920x1080
  • 个人所得税算少了怎么办
  • 小规模公司减免的增值税怎么做账
  • 前端向后端发送请求
  • 资金拆借需防范哪些风险
  • 工程事故赔偿协议书怎么写
  • 委托银行收款属于什么科目
  • checkingmedia什么意思戴尔笔记本
  • 员工宿舍的物业费要交个税吗
  • gcasSWUpdater.exe是什么进程 有什么作用 gcasSWUpdater进程查询
  • php中imagecreatefromjpeg
  • 加拿大巨石
  • 一般纳税人简易计税
  • 购买固定资产后如何处理
  • 谷歌浏览器无法安装
  • 残保金是应交税金吗
  • python cox
  • 微擎最新破解版
  • mysql从一张表更新到另一张表
  • sqlserver还原数据库一直显示正在执行0%
  • 个人所得税年底退税 可以退多少
  • 赔偿支出需要纳税调整吗
  • 销售产品的运输费会计分录
  • 公司的财产保险业务
  • access数据库如何
  • sql 字符串
  • 个税申报错误已经扣税款怎么处理
  • 生活垃圾处理费合法吗
  • 以前年度损失如何记账
  • 招待客人会计分录
  • 利息保障倍数为0说明什么
  • 房租押金是什么意思?
  • 待认证进项税额是二级科目还是三级科目
  • 进项税额转出可以在所得税前扣除吗
  • 企业里面不征税的有哪些
  • 合并报表怎么合并
  • 应收票据贷方余额
  • 多种工具安装系统怎么用
  • win10改用microsoft账户登录
  • Win7系统如何打开磁盘管理工具
  • 升级win10后
  • win10系统经常弹出广告页面怎么解决
  • win10win8双系统
  • linux系统中怎么编写一个程序
  • win10预览版好吗
  • java scripts
  • 基于javascript的毕业设计
  • python单子
  • javascript基础笔记
  • 抵扣怎么做账
  • 如何查询哈尔滨医院药品信息
  • 超豪华小汽车需要在什么环节纳税
  • 工信厅有什么实权
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设