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. Image for the cookie policy date
close icon

Latest Xamarin update and syncfusion fastlineseries

Hi,

I have just updated to the latest xamarin release, both environment and Xamarin.Forms. I have also upgraded syncfusion essential studio to latest stable release.

My xamarin forms android app is now showing signs of high cpu usage when performing real time update of fastline series on screen. Before any software update, I was able to update 102 points fastline series every ~250ms without any obvious screen delay or freezing. This is via binding observablecollection to the series and using propertychange event for each chart point. Now, if I update the fastline series it is overloading my GUI thread causing the application to freeze.  

Have you had any other comments regarding latest Xamarin?

Best Regards,

Matt

 

11 Replies

YP Yuvaraj Palanisamy Syncfusion Team July 13, 2016 06:23 PM UTC

Hi Matthew Finch,
 
Thanks for contacting Syncfusion support.
 
We are not able to reproduce the reported issue from our end. But still we are analysing the possibilities in various cases. We will update you with more details in one business day. (July 14, 2016)
 
Thanks,
Yuvaraj



YP Yuvaraj Palanisamy Syncfusion Team July 14, 2016 02:51 PM UTC

Hi Matthew Finch,

We are not able to reproduce the issue in both current and previous version of SfChart. please kindly update us the modified sample. please find the sample from the below location.

Sample: http://www.syncfusion.com/downloads/support/forum/124982/ze/SimpleSample1685734310  

Thanks,
Yuvaraj

 



MF Matthew Finch July 21, 2016 12:17 PM UTC

Hi,

Thanks for you sample code. If you change the timer code to the below and then run release on device  (i use nexus 7) then it appears that CPU hits 50% and the main thread starts freezing.
I assume this is to do with onpropertychange events in the bindableobject when clearing and rewriting the data points. I have changed loop to 250ms. Could you give me any advice as to how to implement a fast (250ms) update of the 180 points of data that doesn't cause large CPU usage. Do I need to have a time gap between data.Add actions?

Best Regards,

Matt Finch


            Device.StartTimer(new TimeSpan(0, 0, 0, 0, 250), () =>
            {
             /*   Data.RemoveAt(0);

                  if (random.NextDouble() > 0.5)
                      yValue += 0.5;
                  else
                      yValue -= 0.5;

                  xValue++;

                  Data.Add(new Model(xValue, yValue)); */
                Data.Clear();
                for (int i = 0; i < 180; i++)
                {
                    xValue = i;
                    if (random.NextDouble() > 0.5)
                        yValue += 0.5;
                    else
                        yValue -= 0.5;
                    Data.Add(new Model(xValue, yValue));
                }

                return true;
            });



YP Yuvaraj Palanisamy Syncfusion Team July 22, 2016 06:23 PM UTC

Hi Matthew Finch,

Thanks for the update.

We have tested the sample with your requirement of updating 180 data points for every 250 ms in Nexus 7 (Lollipop OS) and we are not able to reproduce the reported issue at our end. We suspect that the configurations of your device may be different and hence we kindly request you to share your mobile device configurations for helping you further assistance on this.

Please let us know if you need any clarifications.

Thanks,
Yuvaraj


MF Matthew Finch July 25, 2016 10:25 AM UTC

Hi,

I am using android 6.0.1 OS version (Marshmallow).

I'm building the sample app with 

Xamarin.Android
Version: 6.1.1.1 (Visual Studio Professional)

and Syncfusion Essential Studio version 13.3.0.7

Previously built versions of my application were showing waveform updates (as of my edited example) ok although CPU hungry. But there seems to have been a change somewhere in latest versions that are causing a large performance hit, possibly garbage collection?

It would be good to get to a point that you are able to witness the issue there. 

Best Regards,

Matt


YP Yuvaraj Palanisamy Syncfusion Team July 26, 2016 07:29 PM UTC

Hi Matthew Finch, 

We regret the delay. 

We are still analyzing this reported issue in multiple versions of devices and emulators and the sample is running without any performance issues as you specified in the previous updates. We will analyze further and update you with more details in one business day (27th July, 2016). We appreciate your patience until then. 

Thanks, 
Yuvaraj 



YP Yuvaraj Palanisamy Syncfusion Team July 27, 2016 04:13 PM UTC

Hi Matthew Finch,  
 
We are unable to reproduce the reported issue at our end in Nexus 7 (Marshmallow 6.0.1). We kindly request you to check whether the issue is reproduced in this attached sample without making any changes. Please check the below provided sample and let us know whether it satisfy your requirement else provide us more information probably a modified sample or video to represent the issue.  
 
 
Thanks, 
Yuvaraj 
 



MF Matthew Finch August 15, 2016 02:07 PM UTC

Hi,

I still experience the same issue. 

I was wondering if you could install this .apk (compressed inside .rar file) on your nexus 7?

It is built from my environment. I experience high cpu usage with this on both my nexus 7 and Lenovo Tab2-A10 which is running an older version of android. Initially, the app starts Ok but soon a lag begins  (screen updates slow down from 250ms to several seconds) and then eventually the app crashes...probably due to garbage collection routines running in the background.

If you do not experience a lag of screen updates on your hardware then I am not sure where to go with this.

Best Regards,

Matt Finch



Attachment: test.testSigned_d17a964c.rar


YP Yuvaraj Palanisamy Syncfusion Team August 17, 2016 01:54 PM UTC

Hi Matthew Finch, 
 
We regret the delay.  
 
We are able to reproduce the issue in your APK and we are sorry to inform you that this is not reproduced in the sample we have provided in the last update. Hence we suspect that the environment in your development machine may vary from ours. We kindly request you to confirm us the below required details once again for assisting you with most appropriate solution. 
 
1.       Xamarin Version 
2.       Xamarin.Android Version 
3.       Compile SDK version in the application 
4.       Syncfusion Essential Studio version 
5.       Android SDK Build-tools version 
Also, We kindly request you to confirm whether the issue is reproduced in the previously attached sample without making any changes.  
 
Please let us know if you need any clarifications. 
 
Thanks, 
Yuavraj 



MF Matthew Finch August 17, 2016 02:46 PM UTC

Hi,

I can confirm that the last attached example appears to refresh ok after being built in my environment, so matching your findings.

I'm not sure of the differences between the 2 attached samples and whether this leads to any obvious conclusion?

Are you able to compile and run ok with the first sample supplied but with timer set to 250ms as of performance version?

Best Regards,

Matt


YP Yuvaraj Palanisamy Syncfusion Team August 18, 2016 02:41 PM UTC

Hi Matthew Finch, 
 
Yes, we could run the first sample we have provided with the timer set to 250 ms without any performance issues. Also, we would like to inform you that, we have changed that code snippet alone (to 250 ms) in the last sample. 
 
Can you please make sure whether there are any other changes in your application other than this or can you please update us the sample in which this is reproduced for investigating further.  
 
Regards, 
Yuvaraj

Loader.
Live Chat Icon For mobile
Up arrow icon