我是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];
}
}
};
答案 0 :(得分:4)
数组是内存中的原语(嗯,内置类型,不是特别原始的)。
在JavaScript级别,您究竟能够异步写入它吗?
等待写入时会暂时存储在哪里?第二个阵列? (看到问题?写入该数组将导致两次数组写入,这将是两倍慢。)
你将不得不确定一个不同的瓶颈,或者如果这确实是问题(我非常非常确定它不是),你要么机器太弱,要么你有数据量非常大。