2012-04-28 2 views
0

私はNodeを初めて使うので、配列に書き込む際のアドバイスをお願いします。高周波のリアルタイムデータが入ってきて、1つのティックが1つの配列に書き込まれます。Node.jsブロッキングなしで配列に書き込む

これを非同期の方法で行うのが有益でしょうか?もしそうなら、これはどうやって行えますか?

ここでは、私のコードのトリミングダウンスニペットです。新しいティックが受信されると、 "filter"関数が呼び出されます。 「storeWindowData」関数は配列に保存されます。私はこれが高い負荷の下でブロックされている可能性がありますか?

コメントありがとうございます。

よろしくお願いします。

var window_data = []; 
module.exports = { 

filter: function (data) { 

    this.storeWindowData(timestamp, ticker, content); 

    } 
}, 

storeWindowData: function(timestamp, ticker, content){ 
    // Check if we have seen this ticker before for this minute 
    if(window_data[timestamp] !== undefined && window_data[timestamp][0] !== undefined && window_data[timestamp][0] === ticker){ 
     window_data[timestamp][1] = window_data[timestamp][1] + ',' + content; 
    } else { 
     window_data[timestamp] = [ticker, content]; 
    } 
}  

}

答えて

4

アレイはメモリ内のプリミティブです(基本的にプリミティブではありません)。

JavaScriptレベルで、どのように非同期書き込みが可能ですか?

書き込むのを待っている間に一時的にどこに保存されますか? 2番目の配列? (問題を参照してください - その配列に書き込むと2回の配列書き込みが発生します)

別のボトルネックを特定する必要がありますか、私は非常にそれがそうでないことを非常に確信しています)、あなたはこれを扱うマシンがあまりにも弱いか、あなたは非常に多くのデータが入ってきています。

+0

それがあります。それは完全に意味をなさない。ボトルネックはまだありません。高負荷では効率的ではないことを確認したかっただけです。 多くのおかげで、ベン。 – Ben

関連する問題