Codeoptimierung

Aus Lowlevel
Version vom 19. Februar 2010, 17:13 Uhr von Bjork (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Durch die Optimierung des Quellcodes eines Programms kann dieses schneller, effektiver und platzsparender arbeiten. == Allgemeines == === Datengrößen === DWORD …“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation,

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

Allgemeines

Datengrößen

DWORD ist beser...

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