Conference paper
Analyzing performance and dynamic behavior of embedded Java software with calling-context cross-profiling
Prevailing approaches to analyze embedded software performance either require the deployment of the software on the embedded target, which can be tedious and may be impossible in an early development phase, or rely on simulation, which can be extremely slow. We promote cross-profiling as an alternative approach, which is particularly well suited for embedded Java processors.
The embedded software is profiled in any standard Java Virtual Machine in a host environment, but the generated cross-profile estimates the execution time on the target. We implemented our approach in the customizable cross-profiler CProf, which generates calling-context cross-profiles. Each calling-context stores dynamic metrics, such as the estimated CPU cycle consumption on the target.
We visualize the generated calling-context cross-profiles as ring charts, where callee methods are represented in segments surrounding the caller's segment. As the size of each segment corresponds to the relative CPU consumption of the corresponding calling-context, the visualization eases the location of performance bottlenecks in embedded Java software, revealing hot methods, as well as their callers and callees, at one glance.
Language: | English |
---|---|
Year: | 2009 |
Pages: | 121-124 |
Types: | Conference paper |
DOI: | 10.1145/1596655.1596674 |
Cross-computing tools and techniques Formal methods Formal software verification General and reference General programming languages Java processors Language types Program analysis Program reasoning Program semantics Program verification Semantics and reasoning Software and its engineering Software creation and management Software defect analysis Software development process management Software functional properties Software notations and tools Software organization and properties Software testing and debugging Software verification Software verification and validation Theory of computation Verification calling-context cross-profiling visualization of calling-context profiles