4 ms·
I don't think this is true. No current GC tech is fully hard real time. (I am happy to be corrected, as it'd make my life way easier)
by gnzoidberg 5y ago
I don't think this is true. No current GC tech is fully hard real time. (I am happy to be corrected, as it'd make my life way easier)
- nix23 5y agoNot hard real time, but with a fixed, short bound: https://researcher.watson.ibm.com/researcher/view_page.php?id=7236 https://researcher.watson.ibm.com/researcher/view_page.php?i...
- pjmlp 5y agoReal time enough to control weapons in war scenarios. https://www.ptc.com/en/blogs/plm/ptc-perc-virtual-machine-technology-at-the-of-aegis-the-shield-of-the-fleet https://www.ptc.com/en/blogs/plm/ptc-perc-virtual-machine-te... https://www.militaryaerospace.com/defense-executive/article/16720700/thales-chooses-aonix-perc-virtual-machine-software-for-ballistic-missile-radar https://www.militaryaerospace.com/defense-executive/article/... https://www.aicas.com/wp/products-services/jamaicavm/ https://www.aicas.com/wp/products-services/jamaicavm/
- galangalalgol 5y agoThose examples were naval ships. When you can float a huge data center in water and dump all the waste heat you want, it doesn't matter that the Perc vm used is 2.5x as slow as the sun vm. Or that it uses even more ram than a normal java vm which is already a lot. This is running on a microcontroller.
- pjmlp 5y agoMoving goal posts? I thought we were talking about real time GC, besides only the first example is a naval ship.
- galangalalgol 5y agoBoth fair points. Hard real-time is absolutely doable with GC if it is deterministic. It has throughput and memory penalties to get low and predictable latencies but it is regularly done. I have written soft real time java myself. And other than avoiding garbage like you would do with any low latency code with GC, it was idiomatic. But that one change does increase cognitive burden to the point I didnt find it any more productive than C++. If I had needed reflection I might have felt differently.
- kaba0 5y ago> It has throughput and memory penalties to get low and predictable latencies Hard realtime C++ does as well.
- galangalalgol 5y agoI've done lots of hard real time c++. It certainly has development time overhead, but the memory usage was the same as idiomatic c++, just everything was preallocated at max usage. No throughput hit either, if anything it was faster because of no allocations.
- pjmlp 5y agoWell for the situations that it really really matters, it is rather MISRA-C++, and allocations are not allowed anyway.
- galangalalgol 5y agoI've done safety critical that wasn't MISRA. But you have reminded me that for years we were leaving optimization off so we could verify full code and branch coverage in the assembly. At which point Java is almost certainly faster, though we never would have fit in memory with Java. Eventually we started turning optimization on and it was harder to verify but not impossible.