【发布时间】:2020-02-14 14:46:22
【问题描述】:
我有一个包含大约 230,000 行的数据集,我很难处理这些数据。我剪掉了一半以上的信息,仍然需要大约 20 分钟才能处理成可视化(构建数组大约需要 20 秒)。在此之前(在 D3 中)我处理过的最大数据集只有大约 210 行。
有人对如何更快地处理这个问题有任何建议吗?
【问题讨论】:
我有一个包含大约 230,000 行的数据集,我很难处理这些数据。我剪掉了一半以上的信息,仍然需要大约 20 分钟才能处理成可视化(构建数组大约需要 20 秒)。在此之前(在 D3 中)我处理过的最大数据集只有大约 210 行。
有人对如何更快地处理这个问题有任何建议吗?
【问题讨论】:
如果一次渲染大量数据是压倒性的,我认为最好将数据分成块并异步渲染每个块。
例如。
function chunk(arr, chunkSize) {
var R = [];
for (var i=0,len=arr.length; i<len; i+=chunkSize)
R.push(arr.slice(i,i+chunkSize));
return R;
}
var bigData = [...],
reasonableNumber = 20;
chunk(bigData, reasonableNumber).forEach((splitted) => {
requestAnimationFrame(() => drawWithD3(splitted));
});
我希望这会奏效。
【讨论】: