Search for contacts, projects,
courses and publications

Software Performance

Description

COURSE OBJECTIVES

Learn to reason about performance across system layers. Understand, with the example of Java, how language, compiler, virtual machine, operating system, and computer architecture work together.

 

COURSE 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.

 

LEARNING METHODS
Participation in class session and solution of lab/homework assignments (mostly programming in Java).

 

EXAMINATION INFORMATION
Written in-class final exam (if possible).

 

REFERENCES
No textbook is required. The material will be distributed in class (e.g., via slides, videos, and other material made available on the course web site). This course uses Informa as a learning platform.

Check the "Software Performance" course site, with course themes, topics, skills, labs, readings, and more at https://informa.inf.usi.ch/courses

People

 

Hauswirth M.

Course director

Additional information

Semester
Fall
Academic year
2020-2021
ECTS
6
Language
English
Education
Master of Science in Financial Technology and Computing, Elective course, Lecture, 2nd year
Master of Science in Informatics, Elective course, Lecture, 1st year
Master of Science in Informatics, Elective course, Lecture, 2nd year
Master of Science in Software & Data Engineering, Core course, Lecture, 2nd year