On Monday, 12 September 2016 at 22:57:23 UTC, Andrei Alexandrescu
wrote:
An interesting article written for laypeople:
http://www.theverge.com/2016/9/12/12886058/iphone-7-specs-competition
One quote that may be of relevance to us: "As to the iPhone’s
memory, this is more of a philosophical distinction between
Apple and Google. The former is neurotic about killing
background processes and dumping background apps from memory in
iOS, whereas the latter is more liberal with app management in
Android (though Google is gradually moving toward the Apple way
of doing things). The upshot is that an iPhone can feel super
smooth and responsive with half the RAM of an Android device.
RAM consumes power, so having less of it is another factor
contributing to the iPhone’s efficiency lead."
This may be interpreted as follows: the iPhone uses native apps
with reference counting whereas the Android uses a virtual
machine with tracing garbage collection. It follows that the
latter needs more memory for the same performance, and is more
jerky in behavior than the former. Wondering to what extent
this is true. If it is, that provides more impetus for
reference counting for D by the following logic: (a) it is
likely that in the future more code will run on portable,
battery-powered systems; (b) battery power does not follow a
Moore trajectory, so at this point in history demand for
battery lifetime is elastic.
Andrei
I would interpret it quite differently to this.
On iOS applications that are not currently in the foreground or
are a service get killed unconditionally.
On Android applications keep running even when they are no longer
foreground but instead get 'paused'. Here is a handy little graph
of the different events an Android app can be in[0]. Note the
difference between onPause and onStop.
[0]
https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle