我有一个对象列表,它们代表折线图中的点,这些点在获取数据时会增长,并且可以超过20,000(两万)个对象。
但是图表一次只能显示1000个点,为此我做了以下功能:
private pointPush(model: ViewModel, data: Point[]) {
model.values.push(...data);
if (model.values.length > 1000) {
model.values.splice(0, model.values.length - 1000);
}
}
但我意识到当它超过1000点时会变得很慢,因为我认为splice
函数在内部创建了一个新数组。
您可以执行类似于具有常量大小的缓冲区的操作,但是当添加新数据时,数据访问指针将旋转。
记住我正在使用带有nativescript-ui的ObservableArray。