Cross-Profiling for Embedded Java Processors
Walter Binder, Martin Schoeberl, Philippe Moret, Alex Villazón · 2008
Profiling is essential for finding execution time hot spots in applications. However, in embedded systems resources are usually scarce and profiling is not an option, although the detection and optimization of hot spots is particularly important in such resource-constrained systems. In this paper we propose cross-profiling for embedded systems equipped with a Java processor; the cross-profiles are collected in any standard Java environment, but represent the execution time metrics of the embedded target platform. We present a novel cross-profiler that relies on Java bytecode instrumentation and generates calling-context-sensitive cross-profiles with CPU cycle estimations for each calling context. Our cross-profiler reconciles platform-independence, portability, compatibility with standard Java runtime systems, complete bytecode coverage, moderate profiling overhead, and high accuracy of the generated cross-profiles.