Conversation

Even leaving Rust aside, by choosing a memory-unsafe language, you're saying that the small delta in performance between GC and no-GC is worth more to your app than massive unavoidable-in-practice security problems. Seems extremely dubious.
34
471
I wonder what fraction of programmers are aware that any GC technique exists other than mark and sweep and naive reference counting.
6
111
Replying to
the most common complaint about GC i hear isn't the small delta in performance, but the large delta in worst-case latency that makes even soft real-time applications hard to develop
1
47
Replying to and
I thought that fixed in recent years with more latency sensitive algorithms (which some modern languages always use and in case of java you can opt into using)?
1
4
OpenJDK design choices are very focused on long running server applications. Design choices for the Android Runtime are far different. Has equally modern concurrent compacting GC with a focus on latency for apps in foreground and memory usage in the background, not throughput.
1
7
Android 5 switched to full AOT compilation for everything other than one-time initialization code because JIT compilation is horrible for memory usage and battery life. Android 6 moved to current hybrid JIT/interpreter/AOT approach where most code used at runtime is AOT compiled.
1
4
Code run with the interpreter / JIT compiler gets recorded in JIT profiles and then that guides AOT compilation. Over time, you end up with AOT compiled code based on how you use apps. Interpreting the one-time init and cold code makes hot code faster and reduces memory usage.
2
3
Show replies
Android 12 manages to run surprisingly well with 512MB to 1024MB of memory and only efficiency cores in the Android Go configuration. It's far smoother than Android 4 was on a flagship SoC with 2GB of memory. It has actually gotten genuinely leaner and faster over time.
2
7
Show replies