In every programming language there is a notion of how much a language
construct costs in terms of performance.
This correlation
between language construct and performance is called the performance model
of the language.
This talk is devoted to the performance
model of Java.
Java was introduced as a "simple" programming language and consequently
one would expect a simple performance model.
The opposite
is the truth.
Complex and ambitious optimization techniques
applied in the compiler and the runtime system improve an application's
performance, but render an intuitive understanding of performance issues
in Java close to impossible.
Accordingly difficult
is the development of high-performance Java software.
In
cases where the automatically applied optimizations do not suffice, the
developer must cope with the complex Java performance model.
In this tutorial we explain the Java performance model and illustrate
its complexities, using examples from our industrial experience. In this
context we discuss strategies for detection and evaluation of information
related to the performance model and the use of tools that support detection
of performance impediments. |