慢速渲染WPF图表

时间:2015-07-24 12:13:09

标签: c# wpf charts

我正在使用WPF Toolkit中的WPF图表。

我正在.csv文件中加载性能计数器数据。如果文件大小超过> 200KB或超过50个性能计数器,则WPF会花费太多时间来呈现图表。

任何提高WPF图表渲染速度的建议

4 个答案:

答案 0 :(得分:2)

您可能应该使用其他一些图表库,因为WPF工具包图表维护得不是很好。

包含多种图表类型的免费替代方案是Oxyplot。但也有许多其他免费和有偿的图书馆。

答案 1 :(得分:2)

您无法提高WPF工具包图表的性能。唯一真正的替代方案是使用OxyPlot(稍快一点)或商业图表控件(可以快得多)

查看这些比较多个WPF图表性能的链接:

答案 2 :(得分:0)

您可以在这篇文章中找到一些帮助:Ways to improve WPF UI rendering speed

  
      
  • 缓存一切。画笔,颜色,几何图形,格式化文本,字形。 (例如,我们有两个类:RenderTools和TextCache。每个单元的渲染过程都会解析为两个类的共享实例。因此,如果两个图表具有相同的文本,则只需执行一次。)
  •   
  • 冻结Freezable,如果您计划长时间使用它。特别是几何形状。复杂的解冻几何执行HitTest非常慢。
  •   
  • 选择每种基元的最快渲染方式。例如,大约有6种文本渲染方式,但最快的是DrawingContext.DrawGlyphs。
  •   
  • 使用分析器发现热点。例如,在我们的项目中,我们有几何缓存并根据需要呈现它们。似乎是,没有任何改进是可能的。但有一天,我们想到如果我们将一次渲染几何图形并缓存准备好的视觉效果怎么办?在我们的案例中,这种方法可以接受我们单位的图表只有几个州。当图表数据发生变化时,我们会为每个州重建DrawingVisual并将它们放入缓存中。
  •   

此外,该工具包是开源的,下载源代码并提高控件的性能可能是值得的。

答案 3 :(得分:0)

不幸的是,当样本数量很高时,WPF Toolkit Chart控件的表现不佳。我认为没有任何办法可以显着改善它的性能。通常,当您关闭不必要的(如果不需要)功能(例如工具提示)时,其性能会稍微提高一些。 here还有一些建议。但不要指望有明显的改善。