This session features examples of Java code used for high performance computing. Contrary to popular belief, Java may well be used for time-critical applications. As a striking example, this session will demonstrate that it is possible to perform IP routing table lookups fast enough to sustain Gigabit/sec throughput in a core Internet router on a PC using entirely Java technology.
The session will include tips on where to expend effort performance tuning a program. Actual code examples will be presented. The arguement will be made that many performance issues may be best resolved at higher design levels. Low level tuning can often be avoided by a judicious choice of algorithms and data structures.
This session will include several case studies and war stories that illustrate how easy it is to produce code that is unacceptably slow. Fortunately, the solution often is no more complicated than switching to an appropriate data structure. This is often easily done by using the Java technology collections framework. Occasionally, the Java platform's predefined libraries will not suffice and one will have to invent and implement original data structure. As an example, this session will demonstrate an advanced implementation of the Java list interface. The new data structure has superior performance compared to an array or linked list; all basic operations are measurably faster.