Node.js写入数组而不阻塞

时间:2012-04-28 10:20:07

标签: javascript node.js asynchronous nonblocking

我是Node的新手会很感激写一些关于写入数组的建议。我有高频率的实时数据,每个tick都会被写入一个数组。

以异步方式执行此操作是否有益?如果是这样,怎么办呢?

以下是我的代码的修剪片段。收到新的滴答时调用“过滤器”功能。然后“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];
    }
}     

};

1 个答案:

答案 0 :(得分:4)

数组是内存中的原语(嗯,内置类型,不是特别原始的)。

在JavaScript级别,您究竟能够异步写入它吗?

等待写入时会暂时存储在哪里?第二个阵列? (看到问题?写入该数组将导致两次数组写入,这将是两倍慢。)

你将不得不确定一个不同的瓶颈,或者如果这确实是问题(我非常非常确定它不是),你要么机器太弱,要么你有数据量非常大。