日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

nodejs 获取cpu核心数量_用 NodeJS 充分利用多核 CPU 的资源[每日前端夜话0xCB]

發布時間:2024/7/5 HTML 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nodejs 获取cpu核心数量_用 NodeJS 充分利用多核 CPU 的资源[每日前端夜话0xCB] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
每日前端夜話0xCA

每日前端夜話,陪你聊前端。

每天晚上18:00準時推送。

正文共:1558 字

預計閱讀時間:7?分鐘

作者:Nick Major

翻譯:瘋狂的技術宅

來源:coderrocketfuel

介紹

單個 Node.js 程序的實例僅在一個線程上運行,因此無法充分利用 CPU 的多核系統。有時你可能需要啟動 Node.js 進程集群來利用本地計算機或生產服務器上的每個 CPU 內核。

在處理 API 或基于 ExpressJS 的HTTP服務器時,這個問題尤其重要。

幸運的是,Node.js 有一個名為 Cluster 的核心模塊,它能夠幫助我們在 CPU 的所有核心上運行 Node.js 程序。

在本文中,我們將會用 Node.js 實現一個 ExpressJS HTTP 服務器,并在每個 CPU 內核上創建一個唯一的實例。這樣,由于每個其CPU 核心實例都會提供可能的并發請求數,因此 HTTP 服務器的吞吐量將會大大增加。

讓我們開始吧!

目錄

  • 創建 Express HTTP 服務器

  • 在多個 CPU 核心上運行服務器

創建 Express HTTP 服務器

我們要做的第一件事是啟動并運行 HTTP 服務器。如果你已經有了一個可用的 ExpressJS 服務器,則可以跳至下一部分:在多核 CPU 上運行服務器。

我們將用 ExpressJS 來快速創建一個高效而簡單的服務器。如果尚未安裝 npm 軟件包,則可以用以下命令進行安裝:

1$?npm?install?--save?express

然后把下面的代碼添加到要你的的 Node.js 文件中:

1

首先,我們 require() 先前安裝的 Express npm 軟件包。

然后,我們創建一個 PORT 變量,該變量可以是當前的 process.env.PORT 的值,也可以是 5000。然后用express() 方法創建一個 express 實例,并將其保存在 app 變量中。

最添加 app.listen() 函數,用于啟動 Express 程序,并告訴它偵聽我們指定的 PORT。

通過命令行運行代碼時,應該看到類似的內容輸出到控制臺:

1Output:

很好!現在我們啟動 Express HTTP 服務器。

在多個 CPU 核心上運行服務器

在本節中,我們會把 Express 服務器運行在 CPU 的多個核心上!

為了幫助我們實現這一目標,我們將使用Node.js模塊 OS 和 Cluster 。用 OS 模塊來檢測系統有多少個 CPU 核,用 Cluster 模塊來創建多個子進程,我們的 HTTP 服務器可以并行運行這些子進程。

由于這些是核心模塊,因此不需要安裝任何 npm 包,并且可以將它們 require()到我們的代碼中。

我將為你提供完整的代碼,并在隨后進行解釋,因此,如果你看得一頭霧水,也沒有關系。

這是完整的代碼:

1

代碼中做了很多事情,所以讓我們解釋它的每一個部分。

首先是 require() express 包以及 Node.js 的兩個核心模塊 os 和 cluster。

接下來,創建一個 ?PORT ?變量,并為其分配當前 process.env.PORT 編號或 5000 的值。我們稍后將在啟動時用到它。

然后,我們創建一個名為 clusterWorkerSize 的變量來表示系統的 CPU 數量??梢杂?os.cpus().length方法獲得這個數字。查看 Node.js 文檔來獲取有關 os.cpus() 方法的更多信息。

我們創建一個了 if...else語句,用 clusterWorkerSize 值檢查 CPU 是否有多個核。如果 CPU 數量大于 1,我們就繼續創建集群。但是如果運行代碼的計算機上只有一個 CPU 核心,則以本教程第一步中的方式啟動 Express 程序。

假設我們的機器有多個 CPU 核心,那么就要創建另一個 if...else 語句,檢查該語句是否為集群中已運行的第一個進程。用 cluster.isMaster() 方法檢查是否返回 true 或 false。

如果是第一個運行的進程,我們將用 cluster.fork() 為計算機上的每個 CPU 核產生一個新的工作進程。我們還添加了一個事件偵聽器,該偵聽器將在工作進程退出時輸出一條消息,以便我們知道何時出現問題或意外。

值得注意的是,主進程用于偵聽 HTTP 服務器的端口,并在工作進程之間平衡所有請求的負載。

產生所有工作進程后,我們將在創建的每個工作進程上創建一個程序的新實例。如果你的計算機有 2 個 CPU 核,則將會創建該程序的 2 個實例。

運行程序時,應該能夠在控制臺上看到以下內容:

1Output:

輸出將根據 CPU 核的數量而有所不同。

現在你有了一個能夠在多核 CPU 上運行的 HTTP 服務器!

結論

cluster 模塊使我們能夠輕松創建子進程,從而為 Node.js 提供了使用 CPU 所提供的全部功能所急需的功能。并且它還在后臺為在主進程和工作進程之間進行通信做了大量工作。

在讀完本文之后,你現在應該知道該如何使用這個模塊在多個 CPU 核心上運行 Express HTTP 服務器。有了這些知識,你將能夠更好地管理和擴展你的應用。

原文:https://coderrocketfuel.com/article/run-a-node-js-http-express-js-server-on-multiple-cpu-cores

?

下面夾雜一些私貨:也許你和高薪之間只差這一張圖

2019年京程一燈課程體系上新,這是我們第一次將全部課程列表對外開放。

愿你有個好前程,愿你月薪30K。我們是認真的 !

在公眾號內回復“體系”查看高清大圖

長按二維碼,加大鵬老師微信好友

拉你加入前端技術交流群

嘮一嘮怎樣才能拿高薪

?往期精選?

  • BootstrapVue 入門

  • JavaScript的工作原理:引擎、運行時和調用堆棧

  • 用 TypeScript 開發 Node.js 程序

  • 快速上手最新的 Vue CLI 3

  • JavaScript 程序員可以從C ++中學到些什么

  • 在同一基準下對前端框架進行比較

  • Edge 擁抱 Chromium 對前端工程師意味著什么?

  • 使你的 JavaScript 代碼簡單易讀

  • Node.js多線程完全指南

  • deno如何償還Node.js的十大技術債

  • 實戰!半小時寫一個腦力小游戲

  • CSS Flexbox 可視化手冊

  • 世界頂級公司的前端面試都問些什么

  • V8引擎內部機制及優化代碼的5個技巧

小手一抖,資料全有。長按二維碼關注前端先鋒,技術文章和業界動態。

總結

以上是生活随笔為你收集整理的nodejs 获取cpu核心数量_用 NodeJS 充分利用多核 CPU 的资源[每日前端夜话0xCB]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕国内自拍 | 香蕉网在线视频 | 欧美成人aaaaⅴ片在线看 | 国产制服丝袜 | av资源共享 | 日日骚网 | 婷婷久久网| 久久久久久久久久久久久久免费看 | 成人免费黄色片 | 秘密基地电影免费版观看国语 | 日韩黄色成人 | 最新国产在线视频 | 欧美1| 免费小视频 | 亚洲欧美日韩天堂 | 麻豆av一区二区三区在线观看 | 日本一级三级三级三级 | 久久福利精品 | 巨乳动漫美女 | 澳门久久久 | 国产一级性生活 | 苍井空张开腿实干12次 | 9i看片成人免费高清 | 久久国产91 | 亚洲精品3 | 日本国产精品视频 | 水蜜桃色314在线观看 | 婷婷色婷婷开心五月四房播播 | 国产a不卡| 中文字幕永久视频 | 国产精品96久久久久久 | 高潮流白浆在线观看 | 欧美国产一区二区三区 | 极品美女开粉嫩精品 | 一级毛毛片 | 大j8福利视频导航 | 欧美性视频一区二区三区 | 无码人妻精品一区二区蜜桃色欲 | 久久99精品久久久久婷婷 | 日本在线第一页 | 亚洲男人第一天堂 | 欧美撒尿777hd撒尿 | 99爱爱 | 成人免费看片' | 亚洲国产日韩欧美一区二区三区 | 中文精品视频 | 成人啪啪18免费游戏链接 | 双乳被四个男人吃奶h文 | 操极品少妇 | 成人试看120秒体验区 | 变态 另类 国产 亚洲 | 久久久久99人妻一区二区三区 | 国产精品乱码久久久久 | 色性网 | 日本免费在线视频观看 | 天降女子在线观看 | 亚洲欧美国产高清 | 日韩欧美视频在线免费观看 | 日韩av片在线免费观看 | 精品国产va久久久久久久 | 香蕉一区二区三区四区 | 麻豆视频软件 | 青春草av| 亚洲黄色网页 | 成人高清在线观看 | 欧美日韩一二区 | 性爱动漫 | 少妇黄色片 | 国产交换配乱淫视频免费 | 日本精品一区在线观看 | 色婷婷狠狠 | 亚洲国产福利 | 不卡视频在线观看免费 | 青青青青青青草 | 黄频在线 | 国产精品揄拍一区二区 | 天天爱夜夜爽 | 欧美一区二区在线视频 | jizzjizz国产| 婷婷亚洲一区 | 无码gogo大胆啪啪艺术 | av字幕网 | 欧美一区二区高清 | 免费成人黄色网址 | 亚洲国产精品狼友在线观看 | 亚洲中文字幕久久无码 | 草草草在线视频 | 欧美性猛交xxxx黑人 | 精品一区二区三区在线免费观看 | 在线观看亚洲一区二区 | 天天在线免费视频 | 成人午夜在线免费观看 | 精品成人久久久 | 国产精品久久免费视频 | 精品免费国产一区二区三区四区 | 狼人香蕉 | 日韩精品h| 三级视频网 | 樱桃国产成人精品视频 |