国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

充分發揮Nod!e.js程序性能的一些方法介紹

2019-11-02 15:47:01
字體:
來源:轉載
供稿:網友

   這篇文章主要介紹了充分發揮Node.js程序性能的一些方法介紹,Node.js是把JavaScript用于服務器端的框架,需要的朋友可以參考下

  一個Node.JS 的進程只會運行在單個的物理核心上,就是因為這一點,在開發可擴展的服務器的時候就需要格外的注意。

  因為有一系列穩定的API,加上原生擴展的開發來管理進程,所以有很多不同的方法來設計一個可以并行的Node.JS運用。在這篇博文里,我們就來比較下這些可能的架構。

  這篇文章同時也介紹compute-cluster 模塊:一個小型的Node.JS庫,可以用來很方便的管理進程,從來二線分布式計算。

  遇到的問題

  我們在Mozilla Persona的項目中需要可以處理大量不同特征的請求,所以我們嘗試用使用Node.JS。

  為了不影響用戶體驗,我們設計的‘Interactive' 請求只需要輕量級的計算消耗,但是提供更快地反映時間使得UI沒有卡殼的感覺。相比之下,‘Batch'操作大概需要半秒的處理時間,而且有可能由于其他的原因,會有更長的延遲。

  為了更好的設計,我們找了很多符合我們當前需求的方法去解決。

  考慮到擴展性和成本,我們列出以下關鍵需求:

  效率:能有效的使用所有空閑的處理器

  響應:我們的“應用”能實時快速的響應

  優雅:當請求量過多到不能處理的時候,我們處理我們能處理的。不能處理的要清晰的把錯誤反饋

  簡單:我們的解決方案使用起來必須簡單方便

  通過以上幾點我們可以清楚、有目標的去篩選

  方案一:直接在主線程中處理.

  當主線程直接處理數據的時候,結果很不好:

  你不能充分利用多核CPU的優勢,在交互式的請求/響應中,必須等待當前請求(或響應)處理完畢,毫無優雅可言。

  這個方案唯一的優點是:夠簡單

  ?

  1

  2

  3

  4function myRequestHandler(request, response) [

  // Let's bring everything to a grinding halt for half a second.

  var results = doComputationWorkSync(request.somesuch);

  }

  在 Node.JS 程序中,希望同時處理多個請求,又想同步進行處理,那你準備弄個焦頭爛額吧。

  方法 2: 是否使用異步處理.

  如果在后臺使用異步的方法來執行是否一定會有很大的性能改善呢?

  答案是不一定.它取決于后臺運行是否有意義

  例如下面這種情況:如果在主線程上使用javascript或者本地代碼進行計算時,性能并不比同步處理更好時,就不一定需要在后臺用異步方法去處理

  請閱讀以下代碼

  ?

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  13

  14

  15

  16function doComputationWork(input, callback) {

  // Because the internal implementation of this asynchronous

  // function is itself synchronously run on the main thread,

  // you still starve the entire process.

  var output = doComputationWorkSync(input);

  process.nextTick(function() {

  callback(null, output);

  });

  }

  function myRequestHandler(request, response) [

  // Even though this *looks* better, we're still bringing everything

  // to a grinding halt.

  doComputationWork(request.somesuch, function(err, results) {

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 密云县| 三穗县| 兴城市| 屯门区| 佛山市| 开封县| 尚义县| 澎湖县| 高唐县| 松阳县| 湘阴县| 文昌市| 商水县| 海南省| 吴忠市| 冀州市| 巴林右旗| 文登市| 海伦市| 玉屏| 建德市| 广安市| 西丰县| 志丹县| 阿拉善盟| 吴川市| 远安县| 同仁县| 和静县| 广州市| 萨迦县| 佛学| 玛沁县| 巫溪县| 萍乡市| 丹阳市| 长武县| 新昌县| 宁德市| 安岳县| 恩平市|