Cross-Profiling for Embedded Java Processors

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.

[1]  Walter Binder,et al.  A Portable and Customizable Profiling Framework for Java Based on Bytecode Instruction Counting , 2005, APLAS.

[2]  Martin Schoeberl Application Experiences with a Real-Time Java Processor , 2008 .

[3]  Laurie J. Hendren,et al.  Dynamic metrics for java , 2003, OOPSLA '03.

[4]  J. Michael O'Connor,et al.  picoJava-I: the Java virtual machine in hardware , 1997, IEEE Micro.

[5]  Sandhya Dwarkadas,et al.  Execution-Driven Simulation of Shared-Memory Multiprocessors , 1993, MASCOTS.

[6]  Martin Schoeberl A Time Predictable Java Processor , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[7]  Martin Schoeberl,et al.  picoJava-II in an FPGA , 2007, JTRES.

[8]  Laurie J. Hendren,et al.  *J: a tool for dynamic analysis of Java programs , 2003, OOPSLA '03.

[9]  Sandhya Dwarkadas,et al.  Efficient Simulation of Parallel Computer Systems , 1991, Int. J. Comput. Simul..

[10]  James R. Larus,et al.  Exploiting hardware performance counters with flow and context sensitive profiling , 1997, PLDI '97.

[11]  Martin Schoeberl,et al.  WCET analysis for a Java processor , 2006, JTRES '06.

[12]  Sheng Liang,et al.  Comprehensive Profiling Support in the Java Virtual Machine , 1999, COOTS.

[13]  David Gregg,et al.  A method‐level comparison of the Java Grande and SPEC JVM98 benchmark suites , 2005, Concurr. Pract. Exp..

[14]  Sascha Uhrig,et al.  Real-time event-handling and scheduling on a multithreaded Java microcontroller , 2003, Microprocess. Microsystems.

[15]  David Hardin Real-time objects on the bare metal: an efficient hardware realization of the Java/sup TM/ Virtual Machine , 2001, Fourth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISORC 2001.

[16]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[17]  Walter Binder,et al.  Advanced Java bytecode instrumentation , 2007, PPPJ.

[18]  Martin Schoeberl,et al.  A Java processor architecture for embedded real-time systems , 2008, J. Syst. Archit..