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 …“)
Durch die Optimierung des Quellcodes eines Programms kann dieses schneller, effektiver und platzsparender arbeiten.
Inhaltsverzeichnis
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