Performance issue in Tee Chart while plotting 80 channels
Posted: Mon Jan 16, 2012 7:00 am
With the help of Graphics3D drawing we are able to draw the custom objects over the chart.
Now we are facing performance related issues. So attaching the Demo project for your inspection. We are relying on the tee chart as it gives me the Good flexibility to meet our requirement.
Approach:
1. We are reading the data from the CSV file. CSV file contains the sample for Y range .Global Cache is maintained for the data fetched form the CSV.
2. On every 16 milliseconds interval data is streamed to the chart control from global cache. Sampling rate of 4 KHz is maintained.
3. We cannot decrease 16 milli second interval because this the rate at which Hardware device is fetching data to the application.
4. For every 16 ms interval we are getting 80 channel data with 4 K sample rate.
5. User can select the no of fastline series graphs to be plotted. According to the no of fastline graphs selected no of Y axis (Multiple axis) is added to the chart and range is defined per Y axis according to the range of samples in CSV file (UINT16).
6. We are using the custom drawing object created using the Graphics3D handle to be drawn over the chart and their movement and resizing functionalities is implemented. User can reposition, drag and resize the objects.
7. We are using internal down sampling also.
8. We are using Direct 2D canvas from the Tee chart.Direct2D.dll
9. Our chart development machine configuration is – Windows 7, RAM 2GB, SLIMDX installed, CPU – Intel 3 (4 Core)
Performance requirement:
1. With 80 line series (fast line) selected either in sweep mode or in scroll mode, we should able to draw drawing objects smoothly and their movement over the chart should be smooth without any lag between object movement and mouse cursor.
2. It should be able to plot 80 channels smoothly without any flicker, jerk and chop.
Problem Statement:
1. We were able to draw objects over the chart using custom Graphics3D object. We observed that when we increase number of fast line series (Say 80 fastline) there is delays of the movement between the dragged object and mouse cursor.
As per out requirement delay/lag is significantly visible for 80 Fastlines.
2. We are plotting 80 channels with sample rate 4 KHz (with down sampling 4000 becomes 1000 data point, so having max 1000 points per series). We experience chopping and jerking effect while plotting and it is not smooth.
We have also modified Steema direct 2D demo by increasing the number of channels to 80 and used high resolution/ multimedia timer with 16 millisecond intervals and adding four point per interval to 80 fast line series. Doing so there is jerk and chopping in plotting series.
Attachment Description:
Please find the two attachments of the demo application we have created at following link.
https://www.filesanywhere.com/fs/v.aspx ... 62707ab298
1. TeeZip.zipx – This our requirement project
2. ModifiedDirect2D.zipx – This modified version of Steema Direct 2D sample application
Question:
With 80 fast line series, how can we meet the performance without any lag or visible delay in drawn objects movement?
With 80 fast line series, how can we meet the performance without any jerk and chop in series plotting?
Performance Optimization done by us:
• Grid lines/labels/axes were removed
• Data to the fastline was given using the doubles array.
• Sample rate was decreased to 1:1 data point to pixel ratio.
• Sweep mode was stopped during drawing and movement of the objects over chart.
With all the fastlines being plotted at real time and at same time drawing objects are drawn and moved over the chart, performance gets a hit and jerk, chop in plotting.
Now we are facing performance related issues. So attaching the Demo project for your inspection. We are relying on the tee chart as it gives me the Good flexibility to meet our requirement.
Approach:
1. We are reading the data from the CSV file. CSV file contains the sample for Y range .Global Cache is maintained for the data fetched form the CSV.
2. On every 16 milliseconds interval data is streamed to the chart control from global cache. Sampling rate of 4 KHz is maintained.
3. We cannot decrease 16 milli second interval because this the rate at which Hardware device is fetching data to the application.
4. For every 16 ms interval we are getting 80 channel data with 4 K sample rate.
5. User can select the no of fastline series graphs to be plotted. According to the no of fastline graphs selected no of Y axis (Multiple axis) is added to the chart and range is defined per Y axis according to the range of samples in CSV file (UINT16).
6. We are using the custom drawing object created using the Graphics3D handle to be drawn over the chart and their movement and resizing functionalities is implemented. User can reposition, drag and resize the objects.
7. We are using internal down sampling also.
8. We are using Direct 2D canvas from the Tee chart.Direct2D.dll
9. Our chart development machine configuration is – Windows 7, RAM 2GB, SLIMDX installed, CPU – Intel 3 (4 Core)
Performance requirement:
1. With 80 line series (fast line) selected either in sweep mode or in scroll mode, we should able to draw drawing objects smoothly and their movement over the chart should be smooth without any lag between object movement and mouse cursor.
2. It should be able to plot 80 channels smoothly without any flicker, jerk and chop.
Problem Statement:
1. We were able to draw objects over the chart using custom Graphics3D object. We observed that when we increase number of fast line series (Say 80 fastline) there is delays of the movement between the dragged object and mouse cursor.
As per out requirement delay/lag is significantly visible for 80 Fastlines.
2. We are plotting 80 channels with sample rate 4 KHz (with down sampling 4000 becomes 1000 data point, so having max 1000 points per series). We experience chopping and jerking effect while plotting and it is not smooth.
We have also modified Steema direct 2D demo by increasing the number of channels to 80 and used high resolution/ multimedia timer with 16 millisecond intervals and adding four point per interval to 80 fast line series. Doing so there is jerk and chopping in plotting series.
Attachment Description:
Please find the two attachments of the demo application we have created at following link.
https://www.filesanywhere.com/fs/v.aspx ... 62707ab298
1. TeeZip.zipx – This our requirement project
2. ModifiedDirect2D.zipx – This modified version of Steema Direct 2D sample application
Question:
With 80 fast line series, how can we meet the performance without any lag or visible delay in drawn objects movement?
With 80 fast line series, how can we meet the performance without any jerk and chop in series plotting?
Performance Optimization done by us:
• Grid lines/labels/axes were removed
• Data to the fastline was given using the doubles array.
• Sample rate was decreased to 1:1 data point to pixel ratio.
• Sweep mode was stopped during drawing and movement of the objects over chart.
With all the fastlines being plotted at real time and at same time drawing objects are drawn and moved over the chart, performance gets a hit and jerk, chop in plotting.