[Nexus 5 Android Development] mudnightoil:
An update on my earlier post. Haven't had time to test it with a SIM yet, but do have some more feedback, and I investigated the (lacking) performance a bit more, including benchmarks.

Performance:

Exactly the same slowdown or lag in suspect apps and browser performances is still being observed. So I thought it was worth trying out some benchmarks, to see if artificial tests were similarly hobbled. Results though not definitive were interesting. I used Kraken 1.1 and Google Octane v2. Both because they're industry standard, reliable cross platform benchmarks and because they were two of the only ones that would successfully complete / were available for Sailfish. Kraken is a good test of responsiveness across a range of scenarios, and Octane more about absolute performance. I tested several browsers initially, and conducted several runs; where there was little variance I quote a rough average, where there was more I quote a range. All tests were conducted on browsers with a cleared cache and no other apps running.

Kraken 1.1

Jolla Phone:

Browser (standard browser coded by Jolla and based on Mozilla / FF): ~14,400ms. Really slow, but expected. The hardware isn't going to perform miraculously, and it's in line with what you'd expect on Android.

WebCat / WebPirate (third party browsers based on Webkit, not necessarily faster than Sailfish Browser, but way more featured and functional): ~19,000-21,000ms. Abominably slow. Both froze a few times.

Nexus 5 Sailfish:

Browser: 9200-9600ms. Immediately clear that the N5 -can- produce better results than the Jolla.

Webcat / WebPirate: Couldn't really get consistent results. But seemed to show a similar pattern of struggling more than the Jolla Browser.

Octane v2:

Jolla Phone:

Browser: 750-810 points. Mindblowingly slow. First couple of times I thought it had frozen, but then realised it just took forever to complete. Way slower than similar Android phones.

WebCat (didn't get time to test WebPirate too): 1200-1300 points. A little better, but still crushingly slow.

Nexus 5 Sailfish:

Browser: ~1200 points. Again, miserably slow. Incomparably slower than similar Android phones.

Webcat (again no time for WebPirate): 2250-2350. Big improvement, as per the Jolla. Still you'd expect a similar Android phone to be at least 50% faster.

Main point of this was to see if the N5 could actually use more CPU (or GPU) resources and achieve higher performance than the Jolla, as it didn't seem to be capable of doing so in every day use. Conclusively, it can. Why it isn't translating this into far better web browsing or general performance, I don't know. Maybe it's just that the performance is so low generally under Sailfish, it's difficult to discern a difference. Both struggle in the same areas and the Nexus 5 just doesn't load webpages or browse with higher performance at all, in the real world.

Due to the very low scores here, I thought I'd conduct some comparative tests with the Nexus 5 under Android, and the Jolla Phone with a browser in Alien Dalvik. Unfortunately I couldn't do the Nexus 5 with Sailfish and an Android browser in Alien Dalvik, as Jolla have yet to port it. A lot of people in the community have been very vocal about how fast Sailfish is and how low its overheads are, some at Jolla have alluded to this, too. I've never believed a word of it, as Sailfish, or at least all its applications, (from a user's perspective) seems very poorly optimised or to struggle for performance. Again, it seems this way on the N5 under Sailfish.

Kraken 1.1

Jolla Phone:

Firefox Android in Alien Dalvik: 12400-13500ms. Not a gigantic difference, but significantly faster. Quite a lot of variance, but every time I ran it, it was faster, and the mean would have been in the middle to lower part of that range. About as good as you'd expect of an average, similarly specced phone in Android.

Nexus 5 CM12.1:

Stock CM12.1 AOSP browser: 6300-6400ms. Amazingly quick for a phone of its spec. Combination of the minimalist AOSP browser and the decrapped CM, on the very quick 5.1, blazed through this. As Kraken tests responsiveness above absolute performance, in such a lightweight browser, maybe we should expect it.

Opera browser (not mini): 8200-8400ms. Much slower, but still a bit quicker than phones of similar spec on older or non stock / AOSP versions of Android.

Octane v2:

Jolla Phone:

Firefox Android in Alien Dalvik: 2350-2450 points. Uh oh. That's faster than the Nexus 5 in Sailfish Browser, and same ballpark (or tiny bit faster) than the N5 in WebCat (Sailfish). Similar figure to similar Android devices. 1.8-3x performance of the Jolla under the Sailfish browsers. This should not be happening.

Nexus 5 CM12.1:

Stock CM12.1 AOSP browser: ~3800 points. Bang on what was expected.

Opera browser: 3900-4300. Had trouble with one of the tests, score is therefore projected (by the application). Opera is less responsive but faster overall than the CM AOSP browser, so not a surprise.

Whilst I wouldn't expect Sailfish (Alpha9) on the Nexus 5 to be fully optimised and match Android, despite the unrealistic expectations of some in the community, there's clearly a very big gulf in absolute performance (as opposed to responsiveness). More worrying is the fact that native Sailfish apps seem to suffer a much higher overhead (or some kind of performance gating), which Android apps running in an ACL in Sailfish do not.

Overall, the Nexus 5 is able to extract some of its performance advantage in benchmarks over the Jolla (in Sailfish), but not in real world use. Why that is, I don't know ... perhaps because it (and seemingly the Jolla too) are only able to access a fraction of their hardware's theoretical responsiveness and speed. Again, is this due to deliberate gating for the weak JP, to stop it running out of memory or freezing and dropping frames (as it used to badly in previous versions)? Is Sailfish just really badly optimised compared with Android? Its apps all really badly coded (doubtful)? Are the newer mobile versions of Qt & QML a big drain? Is libhybris sucking the life out of Sailfish (and can Alien Dalvik cut through it to directly communicate with Android drivers)? If so, then perhaps UbuntuPhone will meet with similar issues. Is Wayland dragging things down? Is it all of the above?

I don't have answers, but I do expect it will need a lot of time and hard work to fix.

Further impressions of Sailfish on the Nexus 5:

*Really annoying not to have a double tap to wake feature on a gesture based phone. Perhaps [MENTION=2208057]vgrade[/MENTION] or [MENTION=3234690]sledges[/MENTION] could comment as to whether it might be possible to install a kernel with this enabled, and whether the feature / Sailfish would still work with it? Though of course this might harm battery life on a device which wasn't devised with the feature in mind.

*Battery life when idle seems to be an issue. I've gone to bed with no apps open, no SIM and only wifi open .. once with 24% charge remaining and once with 28% charge remaining. Both times it's been dead in the morning. Hopefully this can be fixed, as in the past the Jolla would sometimes drain its battery very quickly (and inexplicably) once it got low.

[MENTION=1533331]jalyst[/MENTION] -

phones are cheaper coming from China. There's also availability. It's mostly out of stock in EU, and there might not be more. Bands are identical, it's the same version. Asian version wouldn't have been different, NA is. Model # reveals which it is. Re: not voiding warranty by rooting - if you let that worry you'll never use a 3rd party Android ROM, UP, FFOS or SFOS on an Android device. On Samsung and Nexus devices, rooting is both extremely simple and quick. If you live in the EU, it would be very difficult for Samsung (or anyone else) to successfully deny the warranty if rooting / actions subsequently taken couldn't be proven to have played a role in your claim.

Update - did a swift test on Ubuntu Phone on the Nexus 5 to see if libhybris might be the issue, as both Sailfish and Ubuntu Phone rely on it for Android driver compatibility, and a Jolla employee - [MENTION=5684778]stskeeps[/MENTION] - is its author.

Octane v2:

Ubuntu Phone stock browser, on 15.04 r2 (Vivid Vervet) on the Nexus 5: 4850-5500 points. This is 2-2.5x the best result under SF on the Nexus 5, and much faster than Android. Indeed it's a much faster result than any remotely similarly specced Android phone could hope to get. 'Real' linux in the mobile space obviously can be very fast. For comparison, see - http://images.anandtech.com/graphs/graph9111/73038.png

Kraken 1.1:

Ubuntu Phone stock browser, on 15.04 r2 (Vivid Vervet): 6500-6700ms. Almost as responsive / fast as the AOSP browser in CM12.1 - i.e. a great result, and again much, much better than the N5 under Sailfish.

So I think we can rule out libhybris being the bottleneck.

Browsing in UP, for anyone who's interested, is much faster and less stuttery than in SF, so the advantage isn't just synthetic. Also, bear in mind the N5 port is a community one, and an alpha like the SF port for the N5. UP / SF are pretty good to compare, as they share Qt / QML / C++ and both use libhybris. So one would think that SF ought to be able to attain the kind of (great) performance that UP is already recording (having only just launched its first phone and hit RTM). UP does use Mir instead of Wayland, though.