Poor performance when binding data

2 posts, 0 answers
  1. Neil Johnson
    Neil Johnson avatar
    2 posts
    Member since:
    Dec 2009

    Posted 13 Feb 2010 Link to this post

    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.

  2. Vladimir Milev
    Admin
    Vladimir Milev avatar
    1061 posts

    Posted 17 Feb 2010 Link to this post

    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.
Back to Top