Analyzing Real-Time Java: Deadline Experiments and Comparison with C - Tinetti, Fernando Gustavo (2017)
We have designed and implemented a set of experiments in order to compare a Real-Time Java (RT Java) virtual machine implementation with plain Real Time Linux (ie Linux+ rt-preempt patch). Given the characteristics of real-time execution and applications, we consider the specific code and/or benchmarks as important as the runtime and environment configurations for performance evaluation (as well as for production environments, as a matter of fact). Experiment results are compared, for obtaining RT Java overhead over realtime Linux with plain C programming. Besides usual hardware and basic real-time Linux configurations, we explain some specific details of RT Java that should be taken into account in all RT Java implementations, such as the garbage collector and its impact on meeting time constraints. We experiment with Real Time Java and compare results with similar or the same experiments using the C language, the de facto standard in realtime computing. Even when different languages are used, the main metric is the one used in the real-time field: missed/met deadlines. We mostly used standard experimentation programs and developed a specific one for having fair timing comparison among experiments.