We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy.
Unfortunately, activation email could not send to your email. Please try again.

Chart Performance

Thread ID:

Created:

Updated:

Platform:

Replies:

89317 Aug 21,2009 12:40 PM Aug 28,2009 01:24 AM WPF 4
loading
Tags: Chart
George Mills
Asked On August 21, 2009 12:40 PM

I ran this simple test on Syncfusion, Infragistics and ComponentOne

I really wanted to use Syncfusion because of some pluses like your DocIO library etc. But the Chart is not performing well at all compared to competitors.

All 3 are dead simple Line Scatter plots.

I tried throwing 10,000 points at each.

Syncfusion rolled over and died on resize, used the most memory, and axis labels collided.

C1 Didn't blink an eye on resize, used 1/3 the memory, and axises were intelligently calculated.

Infragistics was close behind C1 but coding is a very tedious. But you coudl definitely see it drawing slow on resize.

Just sharing my experience in case I'm doing something really dumb and give you guys a chance to perhaps fix it.

cs file

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Syncfusion.Windows.Tools.Controls;
using Syncfusion.Windows.Chart;
using C1.WPF.C1Chart;
using Infragistics.Windows.Chart;

namespace EssentialRibbonApplication
{
///
/// Interaction logic for Essential WPF RibbonWindow1.xaml
///

public partial class RibbonWindow1 : RibbonWindow
{
public RibbonWindow1()
{
InitializeComponent();

// Try Bump each of these to 10000 one at a time

int numpoints_sync = 10; // 216K @ 10000 Unusable Resize Axis Labels Colide
int numpoints_c1 = 10; // 68K @ 10000 Fast Resize Axis Labels Perfect
int numpoints_infra = 10; // 68K @ 10000 Slugish Resize Axis Label Good but sometimes tiny font

#region syncfusion
ChartListData x = new ChartListData();
for (int i = 0; i < numpoints_sync; i++)
{
x.AddPoint(i*i, i*2+1);
}
syncdata.Data = x;
#endregion


#region C1
var v = new DoubleCollection();
var w = new DoubleCollection();
for (int i = 0; i < numpoints_c1; i++)
{
w.Add(i*i);
v.Add(i * 2 + 1);
}
s1.Values = v;
s1.XValues = w;
#endregion

#region infragistics
Series f = new Series();
f.ChartType = Infragistics.Windows.Chart.ChartType.ScatterLine;
for (int i = 0; i < numpoints_infra; i++)
{
Infragistics.Windows.Chart.DataPoint p = new Infragistics.Windows.Chart.DataPoint();
var l = new ChartParameter();
l.Type = ChartParameterType.ValueX;
l.Value = i*i;
var m = new ChartParameter();
m.Type = ChartParameterType.ValueY;
m.Value = i*2 + 1;
p.ChartParameters.Add(l);
p.ChartParameters.Add(m);
f.DataPoints.Add(p);
}
xamChart1.Series.Add(f);

#endregion

}
}
}

xaml

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
Title="RibbonWindow1" Height="408" Width="1013" xmlns:igCA="http://infragistics.com/Chart">






















Jayakumar Natarajan [Syncfusion]
Replied On August 24, 2009 05:55 PM

Hi George,
Thanks for evaluating Syncfusion products.

We have a 'FastLine' ChartType that just creates one content presenter and does direct rendering. You could customize the Axis labels with different formats to avoid overlapping.

Please have a look at the attached sample and let us know you have any specific questions.

Thanks,
Jay



LineChart_25fe41cd.zip

George Mills
Replied On August 25, 2009 12:04 PM

The FastLine performance is good.

The "custom" axis is a work around, but the chart should be smart enough to do the right thing on it's own. Rotate text can use up a lot of margin too.

As I resize the other charts they add/remove labeled tics, adjust fonts and in some even cases automatically rotate it.

A "smart" axis is a huge part of good chart.

Jayakumar Natarajan [Syncfusion]
Replied On August 25, 2009 05:17 PM

Hi George,
Thanks for the update. We will consider the smart axis as a FeatureRequest and get this implemented for the upcoming release.

For now, you could handle the Chart sizechanged event and adjust the axis's IntervalCount and Grid's TicksPerIntervalCount to get this working. We will work on a sample and will update you.

Best regards,
Jay

Poorani Idhaya Bala M.A [Syncfusion]
Replied On August 28, 2009 01:24 AM

Hi ,

Thanks for your interests in Syncfusion products.

We have handled the Chart sizechanged event and adjust the interval to achieve the smart axis effect. Please find the modified sample . Let us know if you have any questions.

Thanks,
Poorani





LineChart_89317_62720b29.zip

CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.

;