User: Password:
|
|
Subscribe / Log in / New account

Should be: Goodnight, Perl 6.

Should be: Goodnight, Perl 6.

Posted Feb 11, 2013 20:48 UTC (Mon) by zlynx (subscriber, #2285)
In reply to: Should be: Goodnight, Perl 6. by alankila
Parent article: Chromatic: Goodnight, Parrot

Please don't use Android as a shining example of good garbage collection. I curse Android RAM management every time an app goes out to lunch and stops responding to finger input for a couple of seconds.


(Log in to post comments)

Should be: Goodnight, Perl 6.

Posted Feb 11, 2013 22:30 UTC (Mon) by marcH (subscriber, #57642) [Link]

I think you are confusing Garbage Collection and swapping.

Should be: Goodnight, Perl 6.

Posted Feb 12, 2013 0:15 UTC (Tue) by zlynx (subscriber, #2285) [Link]

No, I've seen the performance logs. It is GC. When the machine hits the limits it goes off and does serious GC, ie, not incremental but full.

Sometimes it also has to run out and kill off background tasks which seems to be time consuming. Does it wait for them to exit or something? KILL -9!

Many Android apps hits this problem when scrolling because they're dropping lots of objects from use and creating new ones. Then to fix that leads them into crazy object reuse schemes which start to make C++ look quite nice.

Should be: Goodnight, Perl 6.

Posted Feb 12, 2013 1:25 UTC (Tue) by alankila (guest, #47141) [Link]

There is no swapping on android. It runs something like OOM killer that hunts for a process to murder based on some rules.

I do not see those long pauses reported here myself. My experience of a GC cycle is that it takes about 2 ms to do, though no doubt there are longer cycles occasionally.

IMHO larger problems are with the physical limits of the touchscreens and poor UI decisions. For instance, it takes some sampling to determine at suitable precision where the finger is, and that requires some low-pass filtering, making every UI movement already lag by default. Some UIs try to use doubleclick and singleclick for completely different actions, requiring singleclick processing to be delayed until it is known that doubleclick was not intended.

My personal #1 annoyance with my phone, a galaxy s2, is to do with the fact that the hardware takes around 1 second to wake up from sleep after I push the power button. That is a long time to wait. I once tried to logcat to see why, but it seems that waking up the hardware simply takes that long, whatever the reason.

And honestly, my phone has 1 GB of memory. It's hard to see it getting used up any time soon, because I'm just not the sort of power user these things are made for. Current shipping phones appear to have 2 GB. If you compare that to around 24 MB heap limit for most android applications, it's evident that something like 50 should be able to exist concurrently without system being even pressed for memory.

Should be: Goodnight, Perl 6.

Posted Feb 13, 2013 21:01 UTC (Wed) by marcH (subscriber, #57642) [Link]

> There is no swapping on android. It runs something like OOM killer that hunts for a process to murder based on some rules.

I have a (too) cheap, Android 2.2 tablet with too little memory and it is slow because they enabled swap on it. I know for sure because they were honest about it and told about it in an official changelog. I also know because I installed another, non official build on it, disabled swap and it became much faster.


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds