8
我有这样的2个例子:DataPointCollection清除性能
1实施例:
Series seria = new Series("name");
for(int i = 0 ; i < 100000 ; i++)
{
seria.Points.Add(new DataPoint(i, i));
}
seria.Points.Clear(); // - this line executes 7.10 seconds !!!!!!!!!!
Series
是从System.Windows.Forms.DataVisualization
DLL类
2实施例:
List<DataPoint> points = new List<DataPoint>();
for (int i = 0; i < 100000; i++)
{
points.Add(new DataPoint(i, i));
}
points.Clear(); // - this line executes 0.0001441 seconds !!!!!!!!!!
- 为什么这些Clear方法之间存在如此巨大的差异?
- 如何更快地清除seria.Point?
你为什么要'while(Points.Count> 0)...'而不是只调用'Points.Clear()'?您已经暂停更新,所以这不成问题。 – Andrey 2011-04-21 13:55:47
我不知道Clear()的实现细节,无论是否对ResumeUpdates()或与布局交互的其他函数有不正确的调用。所以最好避开Points.Clear()直到它被修复(因此_workaround_)。 – 2011-04-21 14:01:41
经过测试后,似乎Points.Clear()确实/ something /并且上面的工作更好 – fbstj 2015-09-23 13:07:11