位置: 编程技术 - 正文

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(我吐槽你)

  • 小规模纳税人所得税税率是5还是2.5
  • 职工薪酬如何做账
  • 普票不能抵扣要坐在帐里吗
  • 已启动申报比对异常申报,可以作废嘛清卡吗
  • 支付宝收据在哪儿看
  • 房地产公司环境
  • 辅助材料属于成本吗
  • 贷款减值准备如何计提
  • 车购税退税需要多长时间
  • 调表不调账最后会有什么问题
  • 没有收入要做应交税费的会计分录
  • 银行取现怎么取
  • 企业销售矿产是否需要缴纳资源税呢?
  • 营改增服务业税率
  • 跨地区经营建筑企业预缴增值税可以先开票后预缴吗
  • 小规模纳税人月末结转增值税
  • 有一个公司能做多少事情
  • 物业收租金必须要发票吗
  • 投资性房地产其他综合收益递延所得税
  • 生产成本为什么不属于费用
  • 固定资产残值率一般是多少
  • 高速公路通行费抵扣最新规定
  • 费用化和资本化对利润的影响
  • 跨月的红字发票
  • 基本户收到个人款项的分录
  • windows怎么禁用网络
  • 暂估人工成本分录怎么写
  • 劳务公司发放农民工工资要开发票吗?
  • 劳保用品做账分录
  • 如何配置环境变量windows
  • 直接人工的核算包括
  • 其他应付款在现金流量表怎么填
  • 单位人工成本计算公式
  • 开发票的时候补差价怎么处理?
  • 微信网页开发工具
  • 转让土地需要办什么手续
  • phpfor循环语句
  • php发送post请求api
  • phpcms开发手册
  • 农民工专用账户回执单
  • phpcms怎么修改模板风格
  • 微信平台的收入从哪里来
  • 个体户利润分配会计分录怎么做
  • 商场收取租金如何入账
  • 专票没有抵扣联可以作废吗
  • 需要计提坏账准备的有哪些科目
  • 无销项税能抵扣进项税吗
  • 出借和出租包装物会计分录是什么
  • 行政单位要不要税号?
  • 商贸公司的外账怎么做
  • 用于出租的设备属于什么资产
  • 营改增后如何纳税
  • 一般纳税人应交增值税怎么算
  • 微信收入构成在哪
  • 库存商品盘盈是什么意思
  • 小规模附加税减半征收什么时候开始
  • 企业外购的固定资产应该怎样进行会计核算
  • linux图形化界面怎么打开命令窗口
  • 进程死锁原因
  • 交换机操作系统版本
  • ubuntu16.04英文版安装教程
  • mac的浏览记录在哪儿
  • win7 分区表
  • 盗版win7怎么升级
  • Extjs中使用extend(js继承) 的代码
  • Node.js中的什么模块是用于处理文件和目录的
  • unity3d跨平台
  • 实现一个完整的主要任务
  • linux中crontab
  • 粒子特效代码
  • fw开发
  • jquery用什么编写
  • unity备份工程
  • 安卓手机如何查
  • python面积
  • 福建省国税局
  • 怎么查询电子票是否被红冲
  • 新能源免税申报,车辆类型怎么填
  • 深圳国税总局
  • 企业代收行政事业性收费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设