慢速渲染WPF图表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了慢速渲染WPF图表相关的知识,希望对你有一定的参考价值。

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

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

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

答案

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

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

另一答案

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

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

另一答案

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

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

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

另一答案

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

以上是关于慢速渲染WPF图表的主要内容,如果未能解决你的问题,请参考以下文章

WPF图表控件[关闭]

适用于 WPF 应用程序的 DynamicDataDisplay 和其他图表库

WPF 渲染原理

echart重新渲染图表,遗留之前图表内容

WPF 渲染级别

您如何确定 WPF 使用的是硬件渲染还是软件渲染?