前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dev express 15.2图表绘制性能问题

dev express 15.2图表绘制性能问题

作者头像
sofu456
发布2023-12-27 08:27:37
990
发布2023-12-27 08:27:37
举报
文章被收录于专栏:sofu456sofu456

dev express 15.2

绘制曲线

  • 前端代码
代码语言:javascript
复制
<dxc:ChartControl Grid.Row="1">
    <dxc:XYDiagram2D EnableAxisXNavigation="True">
        <dxc:LineSeries2D x:Name="series" CrosshairLabelPattern="{}{A} : {V:F2}"/>
    </dxc:XYDiagram2D>
</dxc:ChartControl>
  • 后端代码
代码语言:javascript
复制
Dispatcher.BeginInvoke(new Action(() =>
{
    Random random = new Random();
    series.Points.BeginInit();
    series.Points.Clear();
    for (int i = 0; i < 100000; i++)
        series.Points.Add(new SeriesPoint((double)i, random.NextDouble()));
    series.Points.EndInit();
}), DispatcherPriority.Background);

执行的结果图标很卡,一样的代码和dev express的demo性能差距很大

窗口不要最大化,窗口太大显示效率明显降低,devexpress demo最大化之后也存在这个问题。

ScottPlot

dotnet中绘图可以使用scottplot,基于opengl比livechart的基于skia效率高很多

nuget安装scottplot.wpf

  • 前端代码
代码语言:javascript
复制
xmlns:sp="clr-namespace:ScottPlot;assembly=ScottPlot.WPF"
...
<sp:WpfPlot Grid.Row="1" Name="series"></sp:WpfPlot>
  • 后端代码
代码语言:javascript
复制
 Random random = new Random();
 double[] pointCollection = new double[100000];
 Parallel.For(0, 1, (i) =>
 {
     for (int j = 0; j < pointCollection.Length; j++)
         pointCollection[j] = random.NextDouble();
 });
 series.Plot.AddSignal(pointCollection);
 series.Refresh();
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • dev express 15.2
  • ScottPlot
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档