Lecture 6: Optimierungen Flashcards

(9 cards)

1
Q

Warum sind algorithmische Optimierungen meist der wirksamste Performance-Hebel?

A

Die Wahl eines effizienteren Algorithmus (z. B. iterative statt rekursiver Fibonacci-Berechnung) kann die Laufzeit um Größenordnungen verbessern, noch bevor Mikro-Optimierungen nötig sind. ​

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welches Prinzip steckt hinter Lookup-Tabellen und welchen Vorteil bieten sie?

A

Vorberechnete Ergebnisse werden in einem Array gespeichert, sodass spätere Zugriffe in konstanter Zeit (O(1)) erfolgen und teure Berechnungen entfallen. ​6. Optimierungen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist Loop-Unrolling und welchen Effekt hat es?

A

Mehrere Iterationen werden in einer Schleifenrunde zusammengefasst. Dadurch sinkt der Sprung-Overhead und es entstehen weniger Branches; moderne Compiler führen dies oft automatisch durch. ​

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie sieht ein einfaches Beispiel für Loop-Unrolling aus?

A

// Vorher
for (int i = 0; i < n; i++) sum += arr[i];
// Nachher (Unrolling ×4)
for (int i = 0; i + 4 <= n; i += 4)
sum += arr[i] + arr[i+1] + arr[i+2] + arr[i+3];

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was versteht man unter Inline-Expansion und wozu dient sie?

A

Der Funktionsaufruf wird durch den Funktionscode ersetzt, wodurch Aufruf-Overhead (Stack, Register-Sicherungen) entfällt. Inline erfolgt häufig automatisch durch den Compiler. ​

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie können kompakte Datenstrukturen die Performance steigern?

A

Durch Speichereinsparung (z. B. Bitfelder) passen mehr Daten in den Cache, wodurch Zugriffe schneller werden und weniger Speicherbandbreite benötigt wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Geben Sie ein Code-Beispiel für eine kompakte Datenstruktur mit Bitfeldern.

A

struct MyCompactStruct {
unsigned int isAvailable : 1;
unsigned int userId : 31;
}; // Benötigt nur 32 Bit statt 64 Bit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was sind generelle Praxistipps für Performance-Tuning laut der PDF?

A
  1. Zuerst algorithmische Optimierungen prüfen.
  2. Vor Mikro-Optimierungen verifizieren, ob der Compiler sie bereits erledigt.
  3. Nach jeder Änderung messen, ob sich die Optimierung tatsächlich positiv auswirkt.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie kann man Speicheroptimierungen bei Lookup-Tabellen erreichen?

A

Durch Aufteilung der Tabelle in kleinere Abschnitte, sodass nur relevante Teile im Speicher gehalten werden – das spart Platz und verbessert Cache-Nutzung.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly