从交叉过滤器中删除数据点时,我遇到了性能问题。每次我必须做以下事情:
dimension.filter(tmpReportId);
var tmpReport = dimension.top(1)[0]; //Because after removal I have to modify the "report" (the data point) and add it back to the crossfilter
reportsVis.getCrossfilter().remove();
dimension.filter(null);
问题是,filter()在整个crossfilter上应用了两次,这使得大型数据集上的操作非常昂贵
答案 0 :(得分:0)
filter(null)
不是一项昂贵的操作,因为它只清除过滤器,它不会执行过滤器。 source probably makes things clear:
function crossfilter_filterAll(values) {
return [0, values.length];
}
filter(null)
和filterAll()
是相同的操作,如您所见,它只返回维度中的每个值。