Angelika Langer - Training & Consulting

 
HOME | SEMINARS | TALKS | ARTICLES | BOOKS | LINKS | IOSTREAMS | GENERICS | ABOUT | NEWSLETTER | CONTACT | SITEMAP
HighPerformanceJava

Course Curriculum Angelika LangerCourse Curriculum Angelika Langer  
HOME

SEMINARS
  GENERAL INFO
  SCHEDULE
  REGISTRATION
  
  JAVA
    EFFECTIVE JAVA
    CONCURRENCY
    PERFORMANCE
    JAVA 5.0 
    GENERICS
    5.0 OVERVIEW 
    JAVA 1.3 => 5.0
    JAVA FOR C++
    JAVA INTRO

  C++
    RELIABLE C++
    EFFECTIVE STL
    TEMPLATES
    EXCEPTIONS
    IOSTREAMS
    C++ FOR C
    C++ FOR JAVA
    C++ INTRO   
 

TALKS
ARTICLES 
BOOKS 
LINKS 
IOSTREAMS 
GENERICS 
ABOUT 
NEWSLETTER 
CONTACT 
SITEMAP 
HighPerformanceJava
COURSE DESCRIPTION

This course aims to explain best practice programming techniques for high-performance Java programs and practices performance profiling and analysis including appropriate tuning techniques.

Application performance is a crucial issue in every software development project - regardless of the technology and language being used.  In order to build a high-performance software system programmers and software engineers must have in-depth knowledge of the technology and language specific performance issues. 

This seminar is for Java programmers specifically and explores strategies for improving the performance of Java programs. 

The focus is on core Java - the language itself and its platform libraries (JDK).  The seminar talks about those areas of Java that are relevant for all Java developers regardless of their respective project context.  Specific architectures, such as databases, communication frameworks, web or application servers, etc. are not considered, because there are too many of them and they are highly context specific. 

Attendants study programming techniques for efficient use of the Java language and its runtime environment, with emphasis on the implementation of high-performance software. Benchmarking and profiling techniques are explained and practiced in hands-on labs. The goal is to enable attendants to identify and analyze performance bottlenecks in a Java application and then apply appropriate tuning techniques to remove the performance impediment. 

IMPLEMENTATION (or: Do the right thing)

Naturally, this seminar will not solve all your performance problems. 
Rather than trying to cover the broad range of  all conceivable performance issues, this course has a strong and narrow focus: core Java -  the language itself and its platform libraries (JDK). This may sound petty, but software developers make hundreds of design and implementation decisions every day. They eventually sum up and add to the overall performance characteristics of the application as a whole. 

Here is where the course aims to help improving the performance: attendants learn to habitually apply  programming techniques that improve performance and help avoiding the pitfalls that impair performance. 

PERFORMANCE PROFILING AND TUNING (or: When you think you're done)

The programming techniques discussed and practiced in this course are also relevant for performance profiling and tuning.  Often, the last phase of an implementation effort is a profiling and tuning phase where programmers try to verify that the application meets its performance requirements.  If not, performance bottlenecks must be identify, analyzed, and removed. 

A major part of this seminar is devoted to exactly this phase of a project.  Profiling will be practiced in hands-on sessions, including an explanation of how profiling tools work, what can be expected of them, how they are utilized and how the resulting data is best interpreted and analyzed. 

Once a bottleneck is found all the programming tips and techniques discussed in the course kick in: they can be used to remove or at least mitigate the performance penalty. 
 

 


Prerequisite Courses 
and Skills:
Sound knowledge of Java. 
(1-2 years of practical experience). 
Duration: 4 days

This is a course for professional Java software developers with an interest in  high-performance Java software.  It is best attended after a couple of years of on-the-job Java experience. 

It is a hands-on course for practicing programmers, which means that the focus is on programming and tuning, not on high-level design and testing. Practicing programmers will get the most out of this seminar.  It is a seminar on programming for performance, performance profiling and analysis, and performance tuning. 
 
 

OBJECTIVES
Understand programming techniques that improve performance
Know how to avoid the pitfalls that impair performance 
Learn how to profile and tune an application effectively
Know how to identify and analyze performance bottlenecks

The course is designed by Klaus Kreft & Angelika Langer and backed by years of experience in teaching and more than a decade of practical experience in industrial software development both in C++ and Java.

Angelika Langer is a freelance trainer/mentor in the area of object-oriented software development in C++ and Java. 

Klaus Kreft is a senior consultant for 20 years and has served as the lead architect on several successful industry projects. He has been working in C++ for many year and works in Java since 1995. 

Both are recognized speakers at OO oonference and author of numerous articles on C++ and Java topics in various computer magazines worldwide. Together they wrote columns for JavaSpektrum, C/C++ Users Journal, and C++ Report. They are authors of the  book "Standard C++ IOStreams and Locales". 


 

COURSE OVERVIEW

PERFORMANCE CONCEPTS 
  • What Is Performance? 
  • Performance and the Development Process
  • Performance Measuring 
PROGRAMMING TECHNIQUES
  • Programming  
    • Programming and Performance 
    • Elementary Issues
    • Data Structures
    • I/O
    • Micro-Benchmarking
    • Statistical Tests
  • Program Design
    • Java Types and Performance
  • Runtime Environment
    • RAM Footprint
    • Class Loading
    • Garbage Collection
    • JVM Benchmarking
PROFILING, MONITORING & TUNING 
  • JVM Profiling 
    • Tool Architecture
    • Profiling Strategies and Tactics
    • Choosing a Profiler Tool 
  • GC Profiling
    • Garbage Collections Algorithms
    • GC Profiling & Tuning Options
  • JDK Profiling & Monitoring Support
     
FURTHER READING

To get an impression of some topics covered in this course check out the sample reading: 
 
EFFECTIVE JAVA
Column in JavaSpektrum 
(available in German only)

 

 
 
TRAINING LOCATIONS

Open Enrollment
Public courses are conducted in collaboration with partner companies worldwide. Presentation language is English or German, depending on the location. For further information go to GENERAL INFO.
On-Site Training
Courses can be held at your company site. Duration and content will be tailored to your specific needs and prerequisites. Presentation language is English or German.  For further information go to GENERAL INFO.
For information regarding training locations and the current schedule of public courses go to SCHEDULE. For further information or enrollment send me EMAIL or use the REGISTRATION form.
Schedule
To check for availability, price and other details send me EMAIL or use the REGISTRATION form.

 
© Copyright 1995-2006 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Courses/HighPerformanceJava.htm  last update: 28 Jan 2006