5 ms·
It was a SoC device that had a real-time latency requirement. I'm actually surprised they even bothered putting Java in the table.
by eridius 7y ago
It was a SoC device that had a real-time latency requirement. I'm actually surprised they even bothered putting Java in the table.
- incompatible 7y agoOr Python for that matter. It's the sort of use case where it's worth considering a language without a garbage collector.
- cyphar 7y agoMicroPython is a wholesale rewrite of Python, and is used in quite a few places (the ESA uses it for some of their projects).
- eridius 7y agoPython is mostly refcounted, and I think Python is useful to put in the table because it's a common language and provides a good baseline for user-friendly scripting language performance.
- mattashii 7y ago> Or python for that matter Both Java and Python have (limited) implementations for time-sensitive microcontrollers: Chances are high your SIM card or your chipcard is running Java, and I believe Python (MicroPython) is also in active use on some SOCs
- da_chicken 7y agoApple's A12 and Snapdragon are both SoC and smartphones do much heavier tasks than running Java.
- eridius 7y agoFrom context I assume the author was talking about some sort of embedded device, not a high-power smartphone.
- da_chicken 7y agoI guess I misunderstood the benchmark chart. The Java line shows it taking 500mb, which is absurd, but I assumed that they were running on the target platform and therefore had 500mb of RAM.
- eridius 7y agoIt's not clear what the chart is actually demonstrating, or why it had a "Source" link that just goes to a 4-year-old blog post about concurrency in Rust that contains no benchmarks. My guess is the benchmark chart is just that: a benchmark. They didn't actually write their target program in 6 different languages. They probably just found a set of benchmarks that they believed to be at least somewhat representative. I really wish the article would actually explain this though.
- pjmlp 7y agoJava runs perfectly fine from smart cards, PIC, and many other kinds of micro-controllers. Naturally they are special purpose versions and not a OpenJDK dump.
- Matthias247 7y agoReal-time is a huge field. There is hard-realtime with < 1ms deadlines. And there is soft realtime which is often "fast enough that the user doesn't complain", which is maybe somewhere between 100ms and 1s for various applications. For a cloud-connected device I assume it's in the latter category since most transport protocols won't provide much better guarantees anyway. For those use-cases most languages will be fine.