In the JX project we build a complete operating system using the type-safe, object-oriented language Java. One of the major challenges is achieving a performance that is competitive to mainstream operating systems, such as Linux or Solaris. It is in the nature of our microkernel-based system, that most time is spent executing Java code. Achieving a good performance therefore requires an optimizing bytecode-to-nativecode translator and instrumentation/visualization tools to locate performance problems. In this paper we concentrate on the second requirement. We instrumented the microkernel and the bytecode-to-nativecode translator to get information about nearly every aspect of the systems behavior. The gathered data can be visualized to show CPU time consumption of methods, thread scheduling, object allocation behavior, and object ages.
[1]
Frank Bellosa,et al.
Beyond address spaces-flexibility, performance, protection, and resource management in the type-safe JX operating system
,
2001,
Proceedings Eighth Workshop on Hot Topics in Operating Systems.
[2]
David J. Lilja,et al.
JaViz: A client/server Java profiling tool
,
2000,
IBM Syst. J..
[3]
Daniel A. Reed,et al.
Performance Instrumentation Techniques for Parallel Systems
,
1993,
Performance/SIGMETRICS Tutorials.
[4]
Eduard Ayguadé Parra,et al.
Java instrumentation suite: accurate analysis of Java threaded applications
,
2000
.