2017-07-28 3 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行のマークを超えたときに始まりました。アプリケーションが4,000行以下にトリムされると、この問題は解消されます。

編集:Debianで実行したときと同じテストでは、さらに劇的な崖が見えます。パフォーマンスは8424 msから45212 msに急激に低下します。

+1

テスト入力としてリリースされる1は常に同じです:

は、要約すると?全7回同じ入力? – Lazyexpert

+1

コードの32行目を削除してください。 [mcve] – Rob

+0

@Lazyexpertはい、まったく同じテストが7回実行されます。 –

答えて

1

答えが見つかりました。これは現在のバージョンのNodeで使用されているV8バージョンの問題です。 v9.0.0-nightly20170607eef94a8bf8/ 07-Jun-2017 20:00の時点で、この問題は着陸したnew version of V8によって消えます。それはNode.jsの中に、以前に未知のバグだが、すでにナイトリーに固定していますし、バージョン9

+0

私たちは、問題が何であるか、何が起こるのか、いつ、どこで起こるのかを知らない。これが、この全部を閉ざさなければならない理由です。それは未知の解決策がある未知の問題です。 – Rob

+0

Nodeチームから、これを8.2.xに戻して移植する予定があり、次の1〜2週間で着陸する予定です。これについてお手伝いします。 –

関連する問題