我在应用程序中使用 Steema TChart。 我使用此组件绘制折线图,通常包含 1,000 到 2,000 个数据点,并在数据点可用时实时绘制。 完成一条典型的行大约需要 30 秒。
生成第 2 行或第 3 行后,TChart 组件到达处理器被固定的点。 即使正在更新图表,其他 UI 更新也会受到每次添加新数据点时图表必须执行的重绘的严重影响。 我进行了实验,发现如果我在绘制线条时不显示图表(图表位于窗口的单独选项卡上;但是当前未显示),我的性能要好得多,处理器使用率会急剧下降。
有没有人找到使用此组件并具有更好性能的方法?
在这种情况下,使用此线程中建议的 AutoRepaint 属性的异步绘制技术可能有助于提高系统的性能。基本上,您需要将自动重绘设置为 false 以防止在添加点后重新绘制图表并将其设置回 true,并在数据添加完成后调用刷新。
此处的实时图表文章也可能有助于提高 TeeChart 应用程序的性能。这是一篇Delphi文章,但其中大部分也可以应用于TeeChart的.NET版本。
最后但并非最不重要的一点是,TeeChart for .NET 附带了一个 Direct2D 渲染引擎。这是DSP实时应用所需的高速数据吞吐量的理想选择。请参阅白皮书提高 Windows 窗体中的图形呈现性能,以便详细了解。