Bug 41863 - Xamarin Forms performance is still slow on Android
Summary: Xamarin Forms performance is still slow on Android
Status: IN_PROGRESS
Alias: None
Product: Forms
Classification: Xamarin
Component: Forms (show other bugs)
Version: 2.3.0
Hardware: PC Windows
: --- normal
Target Milestone: ---
Assignee: David Ortinau [MSFT]
URL:
Depends on:
Blocks:
 
Reported: 2016-06-15 18:52 UTC by aed
Modified: 2018-05-09 01:34 UTC (History)
18 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report for Bug 41863 on Developer Community or GitHub if you have new information to add and do not yet see a matching new report.

If the latest results still closely match this report, you can use the original description:

  • Export the original title and description: Developer Community HTML or GitHub Markdown
  • Copy the title and description into the new report. Adjust them to be up-to-date if needed.
  • Add your new information.

In special cases on GitHub you might also want the comments: GitHub Markdown with public comments

Related Links:
Status:
IN_PROGRESS

Description aed 2016-06-15 18:52:08 UTC
I've had an app in the app store since XF1.x (mid 2015) and updated it multiple times. It's now on XF2.3.

The UI performance of the app on Android is still very slow compared to that of iOS. Any time layouts are changed or animated, frames get skipped on Android. The app store reviews for Android are typically "it's laggy" whereas those on the Apple store are "it's great".

I discounted that this was a device issue, by purchasing an old iPhone 4S and running the code on it as well. The iPhone 4 runs smoothly and outperforms a brand new Google nexus 6.

My screens look like Tinder. There are cards consisting of an image at the top, then a bunch of labels in a stack layout. After swiping left/right, a new card is inserted at the bottom of the stack. While this is unnoticeable on iOS, it causes freezes on Android. Same with switching tabs. As a matter of fact, all UI operations on Android seem at least 2x slower than the corresponding ones on iOS.

Is this known to you? What plans are there in place to fix things?
Comment 1 Paul DiPietro [MSFT] 2016-06-16 15:13:42 UTC
Without any specific reproductions or aspects of the platform which can be reported for potential improvement, we can't really be of help here. Please feel free to file for specific issues with minimized reproductions.
Comment 2 aed 2016-06-16 20:08:07 UTC
Paul - Is there a feature or bug tracking Xamarin Forms performance for Android or does the XF team consider it "done"? I am happy to close this as a dupe of a "general perf improvements for XF Android" if it's there.

The app had 30,000 sessions this month and about 1 million actions, and as I mentioned, layout and UI operations are consistently slower on Xamarin Forms Android than on iOS across the board.

If your team doesn't think there's any significant perf differences between XF iOS and Android, and doesn't want to investigate it, then I would like to hear it explicitly. In that case, our team will spend time to get some repro samples done to help you.
Comment 3 Wiktor Koncki 2016-07-20 10:41:01 UTC
I can certainly confirm that. I'm building application with quite complex interface (more complex then simple form at least) and performance on android is very bad, nearing unusable. As mentioned before iPhone 4s outperforms any android device we have in office. This is not a problem with the code itself as it performs well on mentioned iPhone 4s, which is a quite slow device, all things considered. This application flies on iPhone SE/6s.

Use cases I see biggest issues on:

Everything related to layout and animations (await LayoutTo). This includes animation freezes, application freezes on waiting for more complex pages etc.

Scrolling of either lists of layouts with a lot of elements. It is very far from smooth. It gets especially bad when images are involved. Images appear to be a real performance headache, especially in lists.

Appearing and disappearing pages. It's dropping a lot of frames. Popping or pushing more complex pages can give 3-5 frames of animation which is unacceptable on modern phone.

Below You can see design of my application to give you a reference point:
https://dl.dropboxusercontent.com/u/2616355/complex.png
https://dl.dropboxusercontent.com/u/2616355/complex.png

I'm using XamlC on vast majority of my pages and controls. Rest are purely in code
Comment 4 Wiktor Koncki 2016-07-20 10:43:03 UTC
I messed up the second link. It should be
https://dl.dropboxusercontent.com/u/2616355/simple.png
Comment 5 Alexandros Elefteriadis 2016-07-20 15:34:53 UTC
There's also repro cases in bug 42335. Can we please get a comment from the XF team?

Even a "will never fix" works but it's good to know.
Comment 6 kyle.spearrin 2016-12-07 00:03:19 UTC
Any update? We also experience this with our XF app. All around iOS is snappy, Android is laggy.
Comment 7 Namyslaw Szymaniuk 2016-12-12 09:33:36 UTC
XF dev team, is there any update, any progress?
I'm developing some business app, without beauty animations, just some controls, elements, lists... but the Android app, comparing to iOS app, looks like it has crappy code behind (but it doesn't!).
Android app seems to be laggy, pages are rendering in seconds (1-3) instead of (0-1 like on iOS), lists are not scrooling so smoothly like on iOS.

Everything looks more crappy and slowly, and lets be honest, you don't need any "specific reproductions" nor platform specific version/device.
Develop any app, with even a little bit complex UI (I know, simpler UI, means faster UI), then build iOS and Android app, install both and compare. Really, there is no needed any specific use case, any specific UI, to reproduce it, everyone are blaming XF Android part, about performance issues.
Comment 8 David Ortinau [MSFT] 2017-03-21 16:00:43 UTC
2.3.4 contains some performance improvements and we are continuing to explore opportunities to improve Android in terms of layout inflation, startup times, etc.

On our roadmap we have several items we hope will work towards that end:
* Fast Renderers
* Layout Compression
* Group Inflation

For screens that require a higher level of performance, a custom page renderer is the best way to go. Xamarin.Android and Xamarin.iOS afford the best performance when using Xamarin.

All performance tips that apply to Xamarin.Android (and Android for that matter) still apply here as well. Make sure you're using fast scrolling. Simplify layout nesting. Avoid changing properties that will trigger a re-layout (use fixed sizing whenever possible). Etc. 

Performance will never be "done". Please follow our pre-releases and releases, and of course the roadmap for updates. 

The forums are the best vehicle to discuss this issue ongoing. 

Please use bugzilla to file specific bugs with a simple reproduction project.

https://forums.xamarin.com/discussion/85747/xamarin-forms-feature-roadmap/p1
Comment 9 aed 2017-03-21 17:27:56 UTC
We opened this bug nine months ago and we still haven't seen any real change in perf. Our team has exchanged no fewer than 30 e-mails with your enterprise support and they've all been: "we're working on it, should have something soon", "we have it on a roadmap".

We disagree with marking this bug as resolved until your team has actually delivered something. At the very least, fast renderers and layout compression. I also noticed a lot of the perf bugs have begun being marked as resolved even though nothing was delivered to actually remedy them.

This bug has a really simple repro project attached to it. If we can run it again and see a perf delta that is bigger than 10%, we'll be happy to mark it as resolved. Otherwise it is not resolved.
Comment 10 David Ortinau [MSFT] 2017-03-21 18:54:09 UTC
I apologize if you took this to mean "RESOLVED - FIXED". That's not my intention. 

"RESOLVED - ANSWERED" here is meant to indicate I have answered this issue and you should not expect further updates here. It doesn't mean we consider Android Performance done, by a 10% delta standard or any other.

If the purpose of this issue being open is to track improvements to Xamarin.Forms Android performance, then you'll be looking in the wrong place. 

I'm working on gathering some stats on the improvements for specific scenarios. A report I just saw showed 20-45% inflation time improvement in the current stable. As I have those to share, I'll be doing so in those other channels of communication.

If you'd like to participate in that, I'm looking for input and contributions. Shoot me a message v-daorti@microsoft.com.

The Roadmap, forums, pre-releases, and releases are your best source of information.

For the moment I'll mark this as "IN PROGRESS" since it is and will always be an ongoing effort. I'll leave it to you to mark it otherwise.
Comment 11 Randal Cunanan 2018-05-09 01:34:05 UTC
Are there any updates on this one? We are also encountering noticeable lags in Xamarin Forms Android UI. Another example is when a collection bounded to a control is replaced and the whole UI is rerendered, it causes huge lag.