位置: 编程技术 - 正文

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

  • 城建税计税方法
  • 个人所得税申报截止时间
  • 我国当前税制结构的基本情况是怎样的
  • 补缴关税税率
  • 影响年度损益的金额有哪些
  • 其他收益属于什么类
  • 没有报关单货物违法吗
  • 短期借款的账务处理实训
  • 累计折旧和固定资产减值准备的区别
  • 分支机构需要填报企业所得税纳税申报表吗
  • 货币资金项目应根据账户的期末余额合计填列
  • 增值税税率如何计算
  • 生产车间用电产品有哪些
  • 个税专项附加扣除具体怎么操作
  • 公司代收生育津贴怎么做账
  • 社会组织接受捐赠的资金的使用原则
  • 为什么算除税价不算税金
  • 印花税是发票吗
  • 2018年工会经费返还比例
  • 企业被列为风险纳税人税控开票会显示什么
  • 资产处置损益是收入还是费用
  • 受托加工物资产生的成本怎么做会计核算?
  • 统一社会信用代码证
  • 个人租房给公司开票税点
  • 打包贷款和出口信贷的区别和联系
  • 企业网银支持互联网专线
  • 投资性房地产企业有哪些
  • 公司在银行购买金币没有发票
  • 公司长期贷款
  • 软件 摊销
  • 二手固定资产使用年限
  • mac系统中文输入法切换
  • 怎么制作网线接口
  • Msssrv.exe - Msssrv是什么进程 有什么用
  • 土地增值税的收费标准
  • 怎么让gridview居中
  • uniapp跳转页面没反应
  • 银行承兑汇票应由在承兑银行开立存款账户的存款人签发
  • 给员工分红是否交税
  • python 复选框怎么设置
  • 在ubuntu中安装win10
  • 企业管理费会计怎么做账
  • 原材料账户该如何做账
  • 小企业在购买商品过程中发生的费用
  • 合作社收到政府补贴会计分录
  • 1000元的打印机双十一满减可以减150吗少
  • 净值型 赎回
  • 先付款后收到发票
  • 关联公司代缴社保劳动者怎么处理
  • 报关单金额大于出口发票金额
  • 已认证的招待费怎么入账
  • 施工方怎么开发票
  • 代理记账公司都是假账么
  • 公司增资怎么办理手续
  • 关于mysql中的字符型数据下面说法正确的是
  • 安装nfs命令
  • 进程管理界面
  • 微软补丁星期二更新吗
  • 苹果mac系统怎么截屏快捷键
  • win8无法正常启动你的电脑
  • linux的用法
  • 新手怎么装
  • 如何把windowsxp换成windows7
  • linux unhide
  • ghost到一半报错
  • 电脑审核策略更改是什么意思
  • linux发布项目
  • centos怎么安装
  • macbookair控制面板
  • w1020h2更新失败
  • linux修改环境变量后需要重启吗
  • android su
  • js 获取图片大小
  • unity3d题库
  • linux释放cache
  • android退出功能
  • javascript 对象的this指向
  • js页面滚动到指定位置
  • 各国海关关税起征点
  • 飞机票其他税费包括什么内容
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设