Search for contacts, projects,
courses and publications

Software Performance

Description

This course teaches how the various layers of a computer system interact and affect the resulting performance. It performs two cuts down the system stack: one about the 'state' and the other about the 'behavior' of a system. The discussion of 'state' investigates memory usage of applications, leak detection, garbage collection, virtual memory management, and cache performance. The discussion of 'behavior' investigates call graphs, dynamic class loading, shared libraries and dynamic linking, control flow graphs, exception handling, compiler optimizations, and branch prediction. The course uses Java virtual machines and their internal operation as a running example and teaches basic static and dynamic program analysis techniques. Given the quantitative aspects of performance, the course introduces basic instrumentation and measurement tools, experimentation and evaluation approaches, and data analysis and visualization techniques.

 

 

REFERENCES

  • David J. Lilja. Measuring Computer Performance: A practitioner's guide

People

 

Hauswirth M.

Course director

Additional information

Semester
Fall
Academic year
2017-2018
ECTS
6
Education
Master of Science in Financial Technology and Computing, Elective course, Lecture, 2nd year

Master of Science in Informatics, Elective course, Lecture, 1st and 2nd year

Master of Science in Software & Data Engineering, Core course, Lecture, 2nd year

PhD programme of the Faculty of Informatics, Elective course, Lecture, 1st, 2nd and 3rd year