• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    Node.js的異步IO性能探討_node.js

    來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:27:45
    文檔

    Node.js的異步IO性能探討_node.js

    Node.js的異步IO性能探討_node.js:Python 和 Ruby 也有這樣的框架,但因?yàn)樵趯?shí)際使用中會不可避免地用到含有同步代碼的庫,因此沒能成長起來,而在 Node.js 之前,JavaScript 的服務(wù)器端編程幾乎是空白,所以 Node.js 才得以建立起了一個(gè)所有 IO 均為異步的代碼庫。 大部分 Web 應(yīng)用的
    推薦度:
    導(dǎo)讀Node.js的異步IO性能探討_node.js:Python 和 Ruby 也有這樣的框架,但因?yàn)樵趯?shí)際使用中會不可避免地用到含有同步代碼的庫,因此沒能成長起來,而在 Node.js 之前,JavaScript 的服務(wù)器端編程幾乎是空白,所以 Node.js 才得以建立起了一個(gè)所有 IO 均為異步的代碼庫。 大部分 Web 應(yīng)用的

    Python 和 Ruby 也有這樣的框架,但因?yàn)樵趯?shí)際使用中會不可避免地用到含有同步代碼的庫,因此沒能成長起來,而在 Node.js 之前,JavaScript 的服務(wù)器端編程幾乎是空白,所以 Node.js 才得以建立起了一個(gè)所有 IO 均為異步的代碼庫。

    大部分 Web 應(yīng)用的瓶頸都在 IO, 即讀寫磁盤,讀寫網(wǎng)絡(luò),讀寫數(shù)據(jù)庫。使用怎樣的策略等待這段時(shí)間,就成了改善性能的關(guān)鍵點(diǎn)。

    PHP 的策略:多進(jìn)程運(yùn)行,直接原地等待 IO 完成。缺點(diǎn):多個(gè)進(jìn)程會消耗多份內(nèi)存,進(jìn)程間難以共享數(shù)據(jù)。
    C/C++ 通常的策略:多線程運(yùn)行,程序自己維護(hù)鎖的狀態(tài)。缺點(diǎn):開發(fā)成本高,容易出錯(cuò),不易調(diào)試。
    Python(Tornado): 多個(gè)請求在單個(gè)進(jìn)程中輪流執(zhí)行,遇到 IO 時(shí)切換到另一個(gè)請求。缺點(diǎn):對于單個(gè)請求而言,依然沒有最高效地利用時(shí)間。
    何謂「最高效地利用時(shí)間」?比如現(xiàn)在有兩個(gè)不相關(guān)的數(shù)據(jù)庫查詢,在 PHP 中通常會先執(zhí)行一個(gè),執(zhí)行完成后再執(zhí)行第二個(gè)(總時(shí)間是 a + b). 顯然這不是最高效的,應(yīng)該同時(shí)執(zhí)行兩個(gè)查詢,時(shí)間是 max(a, b).

    Python 和其他支持多線程的語言的問題就在于,在語言層面,程序員很難告訴虛擬機(jī),應(yīng)當(dāng)將兩個(gè)操作同時(shí)執(zhí)行,即使有辦法,也相當(dāng)麻煩,大多數(shù)人懶得去用(也不值得去用)。而因?yàn)?Node.js 喪心病狂地強(qiáng)制所有 IO 異步執(zhí)行,Node.js 的程序員也可以說是輕車熟路,配合一些改善代碼可讀性庫(promise, async), 可以很輕松地讓不相干的操作并行執(zhí)行。

    上面講了異步 IO 的實(shí)現(xiàn),那么異步 IO 的優(yōu)勢究竟體現(xiàn)在哪里呢。實(shí)際上異步 IO 并不能神奇地減輕服務(wù)器的壓力,該加服務(wù)器還是一樣要加服務(wù)器,只不過異步 IO 會減少單個(gè)請求的時(shí)間,去掉單個(gè)請求中那些無意義的等待時(shí)間。所以單位時(shí)間內(nèi)處理的請求沒有變化,但每個(gè)請求的處理時(shí)間卻減少了。從這個(gè)角度,服務(wù)器也節(jié)約了一些資源——即維持每個(gè)請求的連接消耗的內(nèi)存。

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Node.js的異步IO性能探討_node.js

    Node.js的異步IO性能探討_node.js:Python 和 Ruby 也有這樣的框架,但因?yàn)樵趯?shí)際使用中會不可避免地用到含有同步代碼的庫,因此沒能成長起來,而在 Node.js 之前,JavaScript 的服務(wù)器端編程幾乎是空白,所以 Node.js 才得以建立起了一個(gè)所有 IO 均為異步的代碼庫。 大部分 Web 應(yīng)用的
    推薦度:
    標(biāo)簽: js io 性能
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 99re这里只有精品国产精品| 国产vA免费精品高清在线观看| 四虎最新永久在线精品免费| 日韩精品乱码AV一区二区| 国产叼嘿久久精品久久| 国产AV无码专区亚洲精品| 中文字幕久久精品无码| 久久精品国产精品亚洲| 99热精品久久只有精品| …久久精品99久久香蕉国产| 亚洲AV午夜福利精品一区二区 | 国产精品无码DVD在线观看| 99久久精品国内| 久久久久无码精品国产| 正在播放国产精品每日更新| 国精品无码A区一区二区| 99国内精品久久久久久久| 久久er热视频在这里精品| 国产精品水嫩水嫩| 欧美肥屁VIDEOSSEX精品| 中文字幕av日韩精品一区二区| 久久亚洲中文字幕精品一区 | 亚洲av无码精品网站| 久久96国产精品久久久| 国产精品视频一区二区噜噜| 无码国产乱人伦偷精品视频| 亚洲精品夜夜夜妓女网| 亚州日韩精品专区久久久| 久久精品二区| 久久精品无码一区二区日韩AV| 精品99久久aaa一级毛片| 丰满人妻熟妇乱又伦精品劲| 中文精品久久久久国产网址| 丝袜美腿国产精品视频一区| 精品国产综合成人亚洲区| 久久se精品一区二区| 亚洲精品小视频| 国产精品成人69XXX免费视频| 国产精品videossex白浆| 国产精品美女网站在线观看| 国产玖玖玖九九精品视频|