0

我是 Node 新手,希望能提供一些关于写入数组的建议。我有高频实时数据进来,每个滴答都会被写入一个数组。

以异步方式执行此操作是否有益?如果是这样,如何做到这一点?

这是我的代码的精简片段。当收到新的报价时调用“过滤器”函数。“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

1 回答 1

4

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

在 JavaScript 级别上,您究竟如何异步写入它?

在等待写入时,它会临时存储在哪里?第二个数组?(看到问题了吗?写入该数组会导致两次数组写入,速度会慢一倍。)

您将不得不确定一个不同的瓶颈,或者如果这确实是问题(我非常非常确定不是),您的机器处理这个问题的能力太弱,或者您有一个疯狂的高进来的数据量。

于 2012-04-28T10:23:57.000 回答