c# - 当我绘制图表时,ChartPlotter 内存增加并且从不减少
问题描述
我使用 DynamicDataDisplay.ChartPlotter 绘制图表,每次重绘图表时内存都会增加。因此,当我重绘 200 次时,我的应用程序的图表内存增加到 200 个月。
我尝试手动 GC.Collect() 但没有任何改变。
private ChartPlotter _courbeChartPlotter;
public ChartPlotter CourbeChartPlotter
{
get { return _courbeChartPlotter; }
set
{
_courbeChartPlotter = value;
RaisePropertyChanged();
}
}
private static ListPointD3Cs _listeX = new ListPointD3Cs { new Point(0, 0) };
private static EnumerableDataSource<Point> dsX = new EnumerableDataSource<Point>(_listeX);
private int nbPoint = 0;
public void TakeMeasureTest()
{
nbPoint++;
_listeX.Add(new Point(nbPoint, GetRandomNumber(-1, 1)));
InitDotsCourbe(out dsX);
TraceCourbe(dsX);
}
public void InitDotsCourbe(out EnumerableDataSource<Point> dsX)
{
dsX = new EnumerableDataSource<Point>(_listeX);
dsX.SetXMapping(x => x.X);
dsX.SetYMapping(y => y.Y);
}
public ChartPlotter TraceCourbe(EnumerableDataSource<Point> dsX)
{
CourbeChartPlotter = new ChartPlotter();
ViewPortAxesRangeRestriction restr = new ViewPortAxesRangeRestriction
{
XRange = new DisplayRange(0, nbPoint + 1),
YRange = new DisplayRange(-2, 2)
};
CourbeChartPlotter.Viewport.Restrictions.Add(restr);
CourbeChartPlotter.AddLineGraph(dsX, Colors.Red, 2, "X");
return CourbeChartPlotter;
}
我希望每次重绘图表时内存不会增加,或者至少当我GC.Collect()
毕竟 Measure 检索正常的内存使用情况时。
解决方案
推荐阅读
- c# - 无法将 system.windows.forms.messageboxbuttons 转换为 system.windows.messageboxbuttons
- scip - `SCIP_EVENTTYPE_NODESOLVED` 包含的事件是什么意思?
- php - 子句“/quiet 和 /norestart 命令行开关”是什么意思?
- arrays - 如何映射深度嵌套的数组对象?
- javascript - 如何在 REACT 中从另一个类调用一个类中的函数
- html - 语义 UI 中的边框类
- cupy - 了解 cp.RawKernel 中的网格和块
- google-apps-script - 在 Google Sheets 脚本中将数据从行转换为列
- python-3.x - savefig 的问题
- python - 如何在 python 中将 Json 数据转换为 panda datafame?