ColumnSeries 使用 Syncfusion 渲染 Xamarin.Forms 需要很多时间

ColumnSeries takes a lot of time to render using Syncfusion for Xamarin.Forms

使用最新版本的 SfChart for Xamarin.Forms (16.3.0.36) 我遇到了以下问题:ColumnSeries 需要大量时间来呈现一个小集合(一个集合的集合需要超过 10 秒)几条记录)与 LineSeries 相比(相同集合大小少于 3 秒)。

事实上,使用调试器我发现加载包含 ColumnSeries 图表的视图是最耗时的部分,甚至在设置图表数据之前。我以同样的方式使用 LineSeries,它加载速度更快。

我正在为 ColumnSeries 使用以下代码:

            <chart:SfChart x:Name="SumChart1" Margin="5,0,10,0">
            <chart:SfChart.PrimaryAxis>
                <chart:DateTimeAxis Title="Time" EdgeLabelsDrawingMode="Center"
                                    IntervalType="{Binding IntervalType, Mode=TwoWay}"
                                    x:Name="SumAxis" />
            </chart:SfChart.PrimaryAxis>

            <chart:SfChart.SecondaryAxis>
                <chart:NumericalAxis Title="{Binding SelectedVariableForGraph.Name}" />
            </chart:SfChart.SecondaryAxis>

            <chart:ColumnSeries
                x:Name="SumSeries"
                Label="Sum"
                XBindingPath="Key"
                YBindingPath="Value"
                ItemsSource="{Binding SumGraph, Mode=TwoWay}"
                ListenPropertyChange="True"
            >
                <chart:ColumnSeries.ColorModel>
                    <chart:ChartColorModel>
                        <chart:ChartColorModel.CustomBrushes>
                            <Color>Orange</Color>
                        </chart:ChartColorModel.CustomBrushes>
                    </chart:ChartColorModel>
                </chart:ColumnSeries.ColorModel>
            </chart:ColumnSeries>
        </chart:SfChart>

我只对修复 Android 版本感兴趣。 我已经使用 HAXM Android 模拟器和小米 Mi A1 设备测试了这个问题,结果相似(设备似乎只快一点)。

在搜索此问题的答案时,我发现 "SfChart renders column series in Android and iOS as FastColumn series by default" (https://www.syncfusion.com/forums/138607/fastcolumnbitmapseries-on-sfchart-xforms),但这似乎不适用于我的情况(Android)。

有什么我遗漏的吗?

编辑: 我正在使用 SfTabItem 来显示图表(页面中有 3 个 ColumnSeries 和 1 个系列图表)。 X轴是DateTime类型,Y轴是double类型。这个细节似乎是导致问题的原因

我们最终无法重现所报告的问题,我们准备了一个示例,可以从下面的 link.

下载示例

Sample

由于我们不了解您的确切应用场景,因此我们最终无法重现此问题,请您根据您的应用和复制过程修改示例来回复我们。这将有助于我们进一步调查并尽早为您提供更好的解决方案。

我可以在最后重现报告的场景,我想让你知道,在你的示例中,你只为所有图表提供了间隔类型作为天数,但绑定值不同,如月和年,以至于渲染需要花费太多时间。因为计算了自动间隔,并且为这么多年的所有日子呈现网格线。因此,您必须根据给定数据设置 IntervalIntervalType 否则您需要设置任何内容,图表将自动计算区间和区间类型根据数据。我们已经根据那个修改了你的样本,可以从下面的link.

下载。

sample