Improved graph rendering performance

Hi experts

I make a program for editing graphs by dragging and dropping points on the graph, as there is a lot of data in excel and it is inconvenient to edit them.

The question is how can I reduce the time of loading and drawing these charts?

And how can I increase the performance of the program, when I move the mouse over the schedule, the program takes a long time to process before showing cues with the values of points of all the charts and also when I press the smooth the schedule it calculates the data quickly, but draws a new chart very long.

I attach a link to google disk with the project and one of the excel files I can not attach the archive because the file size is large).

https://drive.google.com/drive/folders/1X7BGtRMLZzZ70vkfQPNz0oTBzL0ynnQW?usp=sharing


9 Replies

YP Yuvaraj Palanisamy Syncfusion Team February 14, 2022 01:41 PM UTC

Hi Dmitriy Shilin, 
 
Currently we are validating your query “Improving the graph rendering performance” and we will update you with complete details on or before 16th February 2022. We appreciate your patience until then. 
 
Regards, 
Yuvaraj. 



YP Yuvaraj Palanisamy Syncfusion Team February 17, 2022 08:05 AM UTC

Hi Dmitriy Shilin,
We are still analyzing on improving the performance of chart with our development team and we will update you with complete details in two business day on or before February 18, 2022. We appreciate your patience until then.
Regards,
Yuvaraj.




YP Yuvaraj Palanisamy Syncfusion Team February 19, 2022 06:19 AM UTC

Hi Dmitriy Shilin,  
 
We have analyzed the performance with provided sample and found that loading data from excel sheet taking more time than chart rendering. To confirm that, we have added two timer in sample to checking the time taken for both chart rendering and data loading from excel sheet with below code example.   
  
Stopwatch sw = new Stopwatch();  
  
if (ofd.ShowDialog() == DialogResult.OK)  
 
    sw.Start();  
    AllData.path = ofd.FileName;  
    ReadExcelSKC read = new ReadExcelSKC();  
    AllData.measure = read.LoadData(AllData.path);  
  
    sw.Stop();  
    MessageBox.Show($"Read excel data {sw.Elapsed.TotalSeconds}");  
  
    if (Path.GetExtension(AllData.path) == ".xls" || Path.GetExtension(AllData.path) == ".xlsx")  
    {  
        Stopwatch ChartSW = new Stopwatch();  
        ChartSW.Start();  
  
        checkBox1.Checked = false;  
        chartControl1.Series.Clear();  
        chartControl1.Axes.Clear();  
  
        . . .  
  
        ChartSW.Stop();  
        MessageBox.Show($"import chart data completed {ChartSW.Elapsed.TotalSeconds}");  
    }  
 
  
Refer the below screenshot for time taken to load the data from excel sheet.  
  
  
  
Also, refer the below chart screenshot for time taken to render the chart after data taken from the excel sheet. 
 
  
  
  
We have included some additional code for improving the performance in chart control. For more details to improve performance, please refer the below link. 
 
  
this.chartControl1.BackInterior = new Syncfusion.Drawing.BrushInfo(System.Drawing.SystemColors.Window);  
this.chartControl1.ChartArea.BackInterior = new Syncfusion.Drawing.BrushInfo(System.Drawing.Color.Transparent);  
this.chartControl1.ImprovePerformance = true;  
series.EnableStyles = false;  
series.Style.DisplayShadow = false;  
series.XAxis = newXaxis;  
  
 
We have attached the modified sample for your reference. Please find the sample from the below link and let us know if you have any further assistance. 
  
 
Please let us know if you have any further assistance. 
 
Regards, 
Yuvaraj. 



DS Dmitriy Shilin February 20, 2022 06:09 PM UTC

Hi, thank you for reducing the time of loading data from the file, but the main difficulty has not disappeared, it occurs when you edit the chart:

1) The program is slow in displaying Trackball for charts.

2) Also slows down rendering the area for scaling 

chartControl1.EnableXZooming = true;
chartControl1.EnableYZooming = true;

3) And the point movement I implemented with mouse movement is also slow when I change the point position and redraw the chart.



YP Yuvaraj Palanisamy Syncfusion Team February 21, 2022 02:27 PM UTC

Hi Dmitriy Shilin,  
  
We are currently validating the reported query and we will update you with complete details on 22nd February 2022.  
  
Regards,  
Yuvaraj 


YP Yuvaraj Palanisamy Syncfusion Team February 23, 2022 03:04 AM UTC

Hi Dmitriy Shilin,   
   
We are still validating the reported queries and we will update you with complete details on or before 24th February 2022.  
   
Regards,   
Yuvaraj 



YP Yuvaraj Palanisamy Syncfusion Team February 24, 2022 11:53 AM UTC

Hi Dmitriy Shilin 
  
The chart has more number series and each have large number of datapoints, when we interact with chart it makes some delay for redraw the all the element of chart control. When we using the single series, the performance will improved.   
  
In windows forms runs with windows message loop, it may delayed with the fast constants to update the control. For more details please refer the below link.  
  
Regards,  
Yuvaraj  



DS Dmitriy Shilin February 24, 2022 08:57 PM UTC

Hi, to solve my problem can only use DirectX or there are other solutions, just if you use DirectX you have to redo everything ;)



YP Yuvaraj Palanisamy Syncfusion Team February 25, 2022 05:02 PM UTC

Hi Dmitriy Shilin, 
 
To improve the performance of chart control, we have already logged the feature request to provide Fast series support in Windows Forms chart. 
   
We will prioritize the features every release based on the demands and we do not have an immediate plan to implement this since we committed with already planned work. So, this feature will be available for any of our upcoming releases  
    
You can track the status of this feature from below link    
 
Please cast your vote to make it counts and If you have any more specifications/suggestions to the feature request, you can add it as a comment in the portal.   
 
Regards, 
Yuvaraj. 


Loader.
Up arrow icon