#c# #performance #sharpdx #oxyplot #skiasharp
#c# #Производительность #sharpdx #oxyplot #skiasharp
Вопрос:
Я пытаюсь использовать OxyPlot с .NET Core 3.0, чтобы показать график с тысячами рядов линий, и каждый из этих рядов линий содержит несколько сотен точек.
Поскольку это так много данных, я пробую как средство визуализации SkiaSharp, так и SharpDX (https://github.com/oxyplot/oxyplot-sharpdx ). Однако я не очень уверен, какой из них выбрать, поскольку разработка oxyplot-sharpdx, похоже, застряла несколько месяцев назад, а SkiaSharp довольно новый.
Какой из них вы бы мне порекомендовали? Кто-нибудь проводил какое-нибудь сравнение производительности между ними?
Чтобы привести некоторый пример того, чего я пытаюсь достичь, вот некоторый код:
public MainViewModel()
{
var model = new PlotModel { Title = "Hello SharpDX from WPF" };
model.Axes.Add(new LinearAxis { Position = AxisPosition.Bottom });
model.Axes.Add(new LinearAxis { Position = AxisPosition.Left, Title="Left Axis Title" });
for (int i = 0; i < 5000; i)
{
var lineSeries = new LineSeries ();
for (int j = 0; j < 300; j)
{
lineSeries.Points.Add(new DataPoint(j, j * i % 2));
}
model.Series.Add(lineSeries);
}
this.Model = model;
}
public PlotModel Model { get; }
Любая помощь была бы действительно оценена.
Ответ №1:
На всякий случай, если кто-то еще также сталкивается с этим.
Покопавшись в этом, я решил перейти на SkiaSharp, поскольку он показал (по крайней мере, в наших тестах), что он немного быстрее SharpDX.
Для этих тестов мы построили 5000 линий, каждая из которых содержит 300 точек.
Среднее время выполнения 3 измерений с помощью SkiaSharp составило 23,91 секунды. Между тем, с SharpDX среднее время составляло 25,8 секунды.
Также разработка, похоже, идет более активно в случае SkiaSharp.
Эти два факта заставили нас сделать этот выбор.
Я надеюсь, что этот ответ может помочь кому-то еще.