gpt4 book ai didi

c# - DataPointCollection 清除性能

转载 作者:可可西里 更新时间:2023-11-01 09:09:33 27 4
gpt4 key购买 nike

我有这两个例子:

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?

最佳答案

这是一个众所周知的问题:performance problem in MSChart DataPointCollection.Clear()

建议的解决方法如下:

public void ClearPointsQuick()
{
Points.SuspendUpdates();
while (Points.Count > 0)
Points.RemoveAt(Points.Count - 1);
Points.ResumeUpdates();
}

本质上,在清除点时,数据可视化工具应该已经暂停更新,但事实并非如此!因此,上述解决方法的工作速度将比简单地调用 Points.Clear() 快大约一百万倍(当然,直到实际错误被修复为止)。

关于c# - DataPointCollection 清除性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5744930/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com