WinAVR-20060125: Code wird schon wieder größer...

Gast #285600
Lesenswert?
• ▲
▼
Kann es sein, dass der Compiler schon wieder schlechter wurde ?

Ein Programm hat sich von rund 3500 auf 3800Bytes vergrößert, nachdem
ich die neue Version installiert habe.
Interessant finde ich folgendes:
a) ypos=Zeile*8;
b) ypos=Zeile;
   ypos*=8;

Version b erzeugt einen um 16Bytes kleineren Code, da u.a. bei B mul
verwendet wird, während a 16bit shifts verwendet.
Gast #285602
Lesenswert?
• ▲
▼
Also ich kann das überhaupt nicht bestätigen.

Ich habe jetzt mal 4 ältere Programme compiliert (-Os):

WINAVR            20030913  20050214  20060125

Programm 1        2911      2935      2907

Programm 2        2376      2390      2380

Programm 3        2075      2089      2069

Programm 4         571       571       569

Vergleich:          100%     100,7%    99,9%


Also nur das 2. Programm ist mit der 2003 Version um 2 Worte kleiner.

In % sind die Unterschiede schlichtweg lächerlich, um so ein Gedöns
drum zu machen.


Peter
Gast #285603
Lesenswert?
• ▲
▼
Ich habe mit 2, also auf Geschwindigkeit optimiert, compiled.
Da wird dann aus x*zahl ein schift, wenn die Zahl 2^n ist, obwohl ein
mul schneller und kleiner wäre. Und das ist nur ein Beispiel.
Bei meinem Fall ist das Programm um rund 8% größer geworden, das ist
schon einiges.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.