2017-07-28 21 views
-1

我在Node.js中的應用程序有多次運行的性能測試。中途執行速度下降到初始值的一半:什麼會導致節點的性能突然減半?

RUN 1: 6604 ms 
RUN 2: 6404 ms 
RUN 3: 6386 ms 
RUN 4: 6392 ms 
RUN 5: 12755 ms 
RUN 6: 12977 ms 
RUN 7: 13124 ms 

的代碼微不足道的變化可以向前或向後推這個懸崖,但我想不通的觸發是什麼。在OS X

  • 節點v8.2.1
  • 不是當Chrome瀏覽器運行重新創建。
  • 總內存使用量是一個常數60MB,在運行之間添加強制GC無效。
  • 該任務純粹是算法(以非常複雜的方式計算斐波那契數列),沒有磁盤或網絡訪問。

有沒有人認識到這個問題的指紋?

對於無法提供最簡單的示例,我表示歉意,只有當應用程序超過4000線標記時,問題纔開始顯現。一旦應用程序被修剪回4000線以下,問題就會消失。

編輯:在Debian中運行時進行的相同測試顯示了更加戲劇性的懸崖。性能從8424毫秒急劇下降到45212毫秒。

+1

測試輸入一個始終不變?所有7次相同的輸入? – Lazyexpert

+1

刪除你的代碼的第32行,你會很開心! [mcve] – Rob

+0

@Lazyexpert是的,這是完全相同的測試運行七次。 –

回答

1

我找到了答案。這是當前版本的Node所使用的V8版本的問題。從v9.0.0-nightly20170607eef94a8bf8/ 07-Jun-2017 20:00開始,此問題由於new version of V8降落而消失。

總結:這是在Node.js的一個先前未知的錯誤,但是這已經固定在Nightlies版以及將被釋放版本9

+0

我們不知道問題是什麼,什麼時候觸發它,什麼時候觸發它。這就是爲什麼整個事情都需要關閉。這是未知分辨率的未知問題。 – Rob

+0

剛剛從Node小組獲悉,他們將把這個問題的解決方案移植到8.2.x中,並將在接下來的一兩週內落地。感謝您的幫助。 –

相關問題