Discourse is slow on Android. Why?


  • Banned

    Any insight appreciated:

    It is actually more like 10x slower if you compare, say, an iPhone 6 or iPad Air 2 to a 2013 Nexus 7. It is very, very bad. Run the benchmark linked in your browser and see for yourself.



  • "If you repeat a lie often enough, it becomes the truth."

    -Dunno



  • Here's some unsolicited data in the name of science:

    On a Microsoft Surface 2 RT tablet (Windows 8.1, 2 GB RAM, quad-core Tetra 4 CPU at 1.71 GHz, Modern/Metro version of Internet Explorer but I can't locate a version number), I get a mean result of 1747 ms on the Complex List test, standard deviation is only 97 ms.

    I need to bench it on one of my desktops because my butt speedometer (sorry, motorcycle term) tells me Discourse forums are noticeably much faster on my tablet than on either of the high-end workstations I typically use.



  • This post is deleted!


  • The bigger question is, why does every other javascript framework and site get it right and not EmberJS?

    Kidding aside something is broken in Chrome.


  • Banned

    Does anyone have a more modern Android phone (say the Galaxy S5 or 2014 Moto X) and can report their results? Nexus 5 is roughly iPhone 5 speeds, in theory, but it is not that fast relative to brand new devices.



  • Firefox on S5: 1520ms
    Default browser on S5: 1310ms

    Keep in mind that this is with all kinds of programs open and eternities since the last restart.
    And yes, the results seem to have a wide range of values.



  • Newly restarted, Google Chrome: 1297ms, Std.Dev 272.37ms



  • People have different requirements on mobile than they do on web: battery life, limited or absent data connections, push notifications. I think the Discourse project -- and especially the api -- would benefit greatly from having a dedicated mobile app developer on board.



  • This is apparently problem with ember, not specifically Discourse.

    That said, a desktop/mobile combo app CAN be done right, even on Android. Example, inoreader RSS reader. They have SPA with infiniscroll on desktop. However, on mobile they switch to a paged display ("load next" button). Both experiences work great.



  • @cartman82 said:

    However, on mobile they switch to a paged display ("load next" button).

    The hell would freeze...

    @codinghorror said:

    Any insight appreciated:

    You're using a fucking broken JS framework, because it's new and shiny and all the cool kids use it. And it bit you in the ass.

    There. Bow to my insight.


  • BINNED

    Moto G 2014 4G Chrome - 1470



  • Assuming I'm looking at the right stats:

    Lumia 930, WP8.1, IE 11 (mobile) 2531ms.

    It's no wonder the site is barely usable for me on my phone.


  • Discourse touched me in a no-no place

    Chrome on S5 - 2321.67ms


  • Discourse touched me in a no-no place

    That was on 4G not WiFi, not sure how much difference that makes.



  • And yet, they still have android and ios store apps, with offline mode and (presumably) OS notifications.


  • Discourse touched me in a no-no place

    @codinghorror said:

    Run the benchmark linked in your browser and see for yourself.

    Desktop Centos 6.5 FF 31.2.0: 1270.8
    Desktop PCLinuxOS FF 35.0a1: 1597.01
    Desktop PCLinuxOS Chrome 38.0.2125: 1116.23
    Desktop PCLinuxOS Konqueror (KDE) 4.13.3: 2034.22

    S3 Android 4.3 Chrome 38.0.2125: 1895.84
    S3 Android 4.3 inbuilt: 1985.57

    I don't think Android is the problem here...



  • Oh yes, I forgot to post my test.

    Samsung Galaxy II, Naked browser (like Dolphin, uses default browser control)
    2390 ms, 490ms deviation

    Chrome desktop:
    216.07ms , 57.17ms deviation

    Something's strange with your PC, PJH.


  • FoxDev

    Desktop Win7-x64 Chrome 38.something: 244.18ms stddev 46.54ms

    -reboot to linux-

    Desktop Xubuntu x64 14.0.4 Firefox: 356.83ms stddev 30.21ms

    -reboot back to windows-

    Desktop Win7-x64 FireFos whatever the frack it is now: 279.23ms stddev 24.59ms

    windows runs in 2/3rds the time linux does ON THE SAME HARDWARE; literally the same computer.


  • Discourse touched me in a no-no place

    @cartman82 said:

    Something's strange with your PC

    Both of them? There's two desktops there.



  • @PJH said:

    Both of them? There's two desktops there.

    Hmm.. Did you try having someone non-cursed run the tests? :-)


  • FoxDev

    like me?

    i did and didn't get as rough performance as @pjh but linux definetly suffers performance losses on same hardware. (granted xubuntu is much newer packages than centos so that could be it)

    or it could be the i7 in that desktop...


  • Discourse touched me in a no-no place

    Could try my home laptop I suppose...


  • Discourse touched me in a no-no place

    @PJH said:

    Could try my home laptop I suppose...

    Desktop PCLinuxOS FF 33.0a1: 722.48.

    Still not spectacular compared to the numbers on the emberjs forum.


  • FoxDev

    i'd post the complete numbers from my laptop run but....

    i can't see STDdev.... apparently 1366x760 is too small a screen to run the test and get results from (yes i know i can hide the div that's not the point)


  • ♿ (Parody)

    Interesting...for me chrome 38.0.2125.111 (64-bit) was faster than FF 33.0 (64-bit) both on Linux. Even though the box flashed with output each iteration on chrome but not on FF.

    Chrome: 158.5 / 161.82ms / 33.82ms
    FF: 190.91 / 192.47ms / 25.13ms
    (geometric / mean / stddev)

    FF had a smaller variance though.



  • This post is deleted!


  • @accalia said:

    i can't see STDdev.... apparently 1366x760 is too small a screen to run the test and get results from (yes i know i can hide the div that's not the point)

    Yep, I had problems with that box getting in the way on both my laptop and phone. I don't know why it's positioned there rather than just allowed to flow below the other content.

    I only managed to get the results on my phone because part of the Show Ascii(sic) button was visible and the ASCII table happened to display in a visible location.



  • Firefox 33.0 on Xubuntu 14.04.1: 436.18ms geom / 439.7ms mean / 58.31ms stddev / 670ms max.
    The test seem to be CPU-bound, which may explain some discrepancies in the results posted here...
    (For reference, this PC seems to have an AMD Athlon(tm) II X2 B28 at 3.4 Ghz)



  • One thing to point out with Android, is that's its super trigger happy about battery saving to the point you let the screen go idle during a benchmark it'll ramp down the CPU instantly.



  • Nexus 10, Android 4.4.4 (5.0 coming soon!), after restarting and waiting a few minutes for it to finish updating shit, tests made in this order and closing the previous app:

    • Chrome: 1078 ms
    • Firefox: 1368ms (seemed very unresponsive during the test)
    • Opera Classic: 1171ms (take that, Fireshit)
    • Opera: shows only a blank page
    • Dolphin Browser, with "Dolphin Jetpack" disabled: 1084ms
    • Dolphin Browser, with "Dolphin Jetpack" enabled: 1056ms

    So it's not really a Chrome-only problem. Maybe Android is just shitty at performance?



  • Dolphin @ XPeria J - 3602.7ms / 3629ms / 490.86ms std.

    Oh my...


  • Banned

    Those are really awful desktop numbers, the worst I have ever seen, what is the CPU? Of what year vintage is it?

    Bad Android perf in JS does not surprise me any more, but bad desktop / laptop perf is very strange.

    @anonymous234 said:

    Maybe Android is just shitty at performance?

    At JavaScript performance, yes, for reasons that nobody can explain to me. Check out the v8 bug on this:



  • I'm totally speculating here, but I wonder what the possibility is that many of us experience slowness on desktop because many of us also have addons/extensions installed to our browsers? Could developer tools, debuggers, and AdBlock be seriously impacting JavaScript performance? I know I have a fair amount of such stuff installed to my browser even though I'm not a web developer these days (old habits die hard).


  • Discourse touched me in a no-no place

    @codinghorror said:

    Those are really awful desktop numbers, the worst I have ever seen, what is the CPU? Of what year vintage is it?

    Desktop 1 - Aincient - at least 6 years.

    $ egrep "vendor_id|family|model|core " /proc/cpuinfo
    vendor_id       : GenuineIntel
    cpu family      : 15
    model           : 6
    model name      : Intel(R) Pentium(R) D CPU 2.80GHz
    core id         : 0
    vendor_id       : GenuineIntel
    cpu family      : 15
    model           : 6
    model name      : Intel(R) Pentium(R) D CPU 2.80GHz
    core id         : 1
    

    Desktop 2 - < 2 years

    # egrep "vendor_id|family|model|core " /proc/cpuinfo
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 42
    model name      : Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz
    core id         : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 42
    model name      : Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz
    core id         : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 42
    model name      : Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz
    core id         : 1
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 42
    model name      : Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz
    core id         : 1
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 42
    model name      : Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz
    core id         : 2
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 42
    model name      : Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz
    core id         : 2
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 42
    model name      : Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz
    core id         : 3
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 42
    model name      : Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz
    core id         : 3
    

    Desktop 3 - < 3 years

    $ egrep "vendor_id|family|model|core " /proc/cpuinfo 
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 23
    model name      : Pentium(R) Dual-Core CPU       T4500  @ 2.30GHz
    core id         : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 23
    model name      : Pentium(R) Dual-Core CPU       T4500  @ 2.30GHz
    core id         : 1
    


  • @codinghorror said:

    iPhone 6 or iPad Air 2 to a 2013 Nexus 7.

    Let's compare brand new, top of the line devices to something that was middle of the road a year ago. That seems to be a valid, scientific comparison.


  • Grade A Premium Asshole

    On a freshly built AMD 8-core machine with 32GB of RAM and an SSD, my results are:

    Results (1.8.0-beta.5)
    Name	# Runs	Geometric Mean	Mean	Std. Dev	Max
    Complex List	40	249.6ms	259.22ms	82.17ms	580ms
    

    On a Samsung Galaxy S5:

    Results (1.8.0-beta.5)
    Name	# Runs	Geometric Mean	Mean	Std. Dev	Max
    Complex List	40	1472.27ms	1666.97ms	1256.86ms	7310ms

  • Banned

    OK, the Samsung Galaxy S5 (1300ms) is almost 6 times slower than the iPad Air 2 (225ms) and over 5 times slower than the iPhone 6 (250ms).

    Better now? ;)

    I'll definitely update this topic when I get my pre-ordered Nexus 9, based on benchmarks I've seen that updated Tegra is (and will be) the highest performing Android device ever.


  • Banned

    Six year old desktop 1 should be retired! The CPU in it dates from 2005. That's almost a decade.. smartphones are literally faster than this now.

    Desktop 2 is doing fine. Higher end (Core i7) CPU from 2011, barring weird browser extensions you should see reasonable numbers on the benchmark.

    Desktop 3 sports a low end CPU from 2010. Very little cache, low clock speed. Should be put out to pasture, probably.


  • FoxDev

    @codinghorror said:

    Six year old desktop 1 should be retired!

    does it still work for the purpose it is being used for? Yes? oh then it's not time to retire it.

    i have a 15YO switch sitting in the middle of my network because i have a dozen or so devices that need wired internet connections but are literally incapable of wanting more than about ~10kbps data. 10 baseT is more than enough data for them, and the switch draws less power than the gigabit switch that is my core switch and only has 6 ports.

    why replace it if it's working and is a negligable resource drain?


  • Grade A Premium Asshole

    @accalia said:

    does it still work for the purpose it is being used for? Yes? oh then it's not time to retire it.

    Not to mention the fact that he may be keeping it around for the express purpose of working with older software, etc? A Pentium D is not a barn burner, but it could easily suffice for day to day menial tasks. Or for keeping XP loaded on to see how your stuff works on legacy equipment.

    If you are designing a website web application that only runs on modern i7's, you are abso-fucking-lutely Doing It Wrong.


  • FoxDev

    @Intercourse said:

    A Pentium D is not a barn burner, but it could easily suffice for day to day menial tasks

    does it help to know that i do all my web development and testing on a pair of raspberry pi's? i figure if i can make my app performant for one person on that kind of hardware i have a good chance of having it stay performant in the real world.


  • Grade A Premium Asshole

    Open up a Discourse site on one of those and let us see what happens. ;)


  • FoxDev

    would it shock you to learn that a stock install said nope?

    now that may be because i messed up setting up docker, as i've never used it before, but i somehow suspect that my messing up, or not, of docker setup had little if anything to do with it.


  • Grade A Premium Asshole

    I just meant to open up a web browser on it, but perhaps I misunderstood you? You mean you are running the technology stack on the Raspberry Pi, but not a desktop environment?


  • FoxDev

    the webserver pi is pure headless, the desktop tester isn't and is running XFCE4 with Chromium (it also has icewasel or watever that it's not exactly FF app is called these days)

    i'm not at home right now. i'll do the perf test on the desktop pi when i get home.



  • Desktop 1 describes 90% of the desktops at my engineering company which is around ~250 computers. Desktop 3 describes 8%. Desktop 2 describes mine and a few others because we've requisitioned our stuff buried in with other parts.



  • Clearly they're Doing It Wrong and should replace them with iPads Air 2.


  • Grade A Premium Asshole

    Clearly anything that is not an i7, that is less than 3 years old should just be completely trashed. It is obviously utterly useless.

    Come to think of it, I have a friend who is making good money off of a half a rack of P3 Xeon servers. I should tell him he is Doing It Wrong. (If it were not for the circumstances, I actually would say that he is.)


  • Banned

    @delfinom said:

    Desktop 1 describes 90% of the desktops at my engineering company which is around ~250 computers

    Your "engineering company" has 90% desktops with a CPU from a decade ago?

    What.. kind.. of engineering do you do there?


Log in to reply