失效地块WPF中大数据的OxyPlot性能问题
我在wpf应用程序中使用OxyPlot作为测线记录器。就像这个例子。 在一个巨大的可视数据集上,我遇到了一些UI性能问题,可能整个应用程序都会出现问题。这似乎是PlotModel.InvalidatePlot,它经常被调用,但我没有找到更好的方法 在深层次上:失效地块WPF中大数据的OxyPlot性能问题,wpf,oxyplot,Wpf,Oxyplot,我在wpf应用程序中使用OxyPlot作为测线记录器。就像这个例子。 在一个巨大的可视数据集上,我遇到了一些UI性能问题,可能整个应用程序都会出现问题。这似乎是PlotModel.InvalidatePlot,它经常被调用,但我没有找到更好的方法 在深层次上: 使用OxyPlot 2.0.0 我在PlotModel中编写所有代码。Xaml PlotView仅绑定到PlotModel 我在线程中收集数据并将其放入数据源(LineSeries的ItemSoure列表) 我有一个类,它计算一个线程中
- 使用OxyPlot 2.0.0
- 我在PlotModel中编写所有代码。Xaml PlotView仅绑定到PlotModel
- 我在线程中收集数据并将其放入数据源(LineSeries的ItemSoure列表)
- 我有一个类,它计算一个线程中的周期,x轴和y轴的表示,以及更多。完成所有这些之后,它调用PlotModel.InvalidatePlot
- 显示器上的点超过100 k(无论是否在多个线系列中)
- 并每500毫秒为每个线系列添加1个数据点
- 并每隔200毫秒调用PlotModel.InvalidatePlot
我还必须更新轴和注释。所以,我想我不会来调用PlotModel.InvalidatePlot。因为我最后计算了下次调用InvalidatePlot的时间。我用本文给出的方法计算它,它返回可见点的数量。这重新减少了性能问题,但在调用InvalidatePlot时修复了UI线程上的阻塞。目前,我最后计算了下次调用InvalidatePlot的时间。我用本文给出的方法计算它,它返回可见点的数量。这重新减少了性能问题,但在调用InvalidatePlot时修复了UI线程上的块。我发现使用OxyPlot Windows窗体实现,然后在WPF中使用Windows窗体集成显示它,可以提供更好的性能 e、 g 其中“Plot”是调用InvalidatePlot()的PlotModel 然后在XAML中:
<ContentControl Content="{Binding PlotContainer}"/>
或者您想使用WindowsFormsHost。我发现,使用OxyPlot Windows窗体实现,然后在WPF中使用Windows窗体集成来显示它,可以提供更好的性能 e、 g 其中“Plot”是调用InvalidatePlot()的PlotModel 然后在XAML中:
<ContentControl Content="{Binding PlotContainer}"/>
或者您希望使用WindowsFormsHost的其他方式