This is a migrated thread and some comments may be shown as answers.

Poor performance when binding data

1 Answer 79 Views
Chart
This is a migrated thread and some comments may be shown as answers.
Neil Johnson
Top achievements
Rank 1
Neil Johnson asked on 13 Feb 2010, 10:08 AM

Hi,

We're trying to use the Telerik Silverlight Chart Control to trend fairly large sets of data and we are noticing a considerable delay when we try to bind to this data. We're actually using another charting control to display this same data as we're seeing much quicker performance (the Visifire control if anyone is interested). However, we use both Telerik Silverlight and ASP.NET AJAX controls elsewhere on our MOSS based portal and so we would like to use the Telerik Silverlight charting component as well, if at all possible. Here is an example of what we're trying to do:

RadChart1.SeriesMappings.Clear();  
trendSerLst.Add(e.Result[0]);  
 
List<List<TrendDataPoint>> serlst = new List<List<TrendDataPoint>>();  
 
for (int i = 0; i < trendSerLst.Count; i++)  
                {   
                  GenerateSeries(trendSerLst[i], i);  
                  serlst.Add(trendSerLst[i].TrendDataPoints);  
                }  
 
                RadChart1.ItemsSource = serlst;  
 
private void GenerateSeries(TrendSeries ser, int index)  
{  
            SeriesMapping sm = new SeriesMapping();  
            LineSeriesDefinition lsd = new LineSeriesDefinition();   
              
            lsd.ShowPointMarks = false;  
            sm.SeriesDefinition = lsd;  
            sm.LegendLabel = ser.SeriesName;  
            sm.CollectionIndex = index;  
 
            sm.SeriesDefinition.Appearance.PointMark.Shape = MarkerShape.Circle;  
            sm.SeriesDefinition.Appearance.PointMark.StrokeThickness = 0;  
            sm.SeriesDefinition.ShowItemLabels = false;  
            sm.SeriesDefinition.Appearance.StrokeThickness = 1;  
 
            ItemMapping yMapping = new ItemMapping("Value", DataPointMember.YValue);  
 
            ItemMapping xMapping = new ItemMapping("Time", DataPointMember.XValue);  
 
            sm.ItemMappings.Add(yMapping);  
            sm.ItemMappings.Add(xMapping);  
 
            RadChart1.SeriesMappings.Add(sm);  


Is this the most efficient way of trending the data or is there a more suitable solution that might give us an improvement on performance?

Any suggestions gratefully received!


Many thanks.

1 Answer, 1 is accepted

Sort by
0
Vladimir Milev
Telerik team
answered on 17 Feb 2010, 08:09 AM
Hello Neil Johnson,

The code used to create the mappings looks good. This is the optimal way to data bind our silverlight chart.  I have some exciting news for you though.

Our team has been hard at work on improving RadChart data binding performance. Currently RadChart is able to bind to several hundred thousand records instantaneously. I can promise you this is the kind of performance you can hardly find in Visifire or any other open source alternatives.

The good news is that we are shipping the improved data binding performance (together with zoom & scroll functionality) as part of our BETA release THIS WEEK.

All the best,
Vladimir Milev
the Telerik team

Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
Tags
Chart
Asked by
Neil Johnson
Top achievements
Rank 1
Answers by
Vladimir Milev
Telerik team
Share this question
or