Codeoptimierung

Aus Lowlevel
Wechseln zu:Navigation,

Durch die Optimierung des Quellcodes eines Programms kann dieses schneller, effektiver und platzsparender arbeiten.

Allgemeines

Datengrößen

Die Wortgröße des Prozessors zu verwenden ist oft besser als dies nicht zu tun (32 Bit bei i386, 64 Bit bei x86-64).

Alignment

Assembler

Reduzierung der Codegröße

Die nachfolgenden Tricks eignen sich besonders zum Programmieren in Assembler, wie es z. B. im Bootloader nötig ist.

Beschreibung Optimierter Code
Register 0 setzen <asm>xor eax, eax</asm>
Prüfen, ob Register 0 ist <asm>test eax, eax

jz ...</asm>

Multiplikation mit einer Zweierpotenz <asm>shl eax, log2Faktor</asm>
Division durch eine Zweierpotenz <asm>shr eax, log2Divisor</asm>
Beliebige Multiplikation <asm>imul eax, [Faktor_1], [Faktor_2]</asm>
Schleife <asm>mov ecx, [Anzahl_Wiederholungen]

von_vorn:

...

loop von_vorn</asm>

Steigerung der Effektivität

PUSHA / POPA

Ist es schneller jedes Register einzeln zu pushen, oder besser pusha?

Hochsprachen

Optimierungstools

TODO

siehe auch

Weblinks