AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Makro-Ersatz

Ein Thema von FAlter · begonnen am 24. Nov 2007 · letzter Beitrag vom 25. Nov 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#11

Re: Makro-Ersatz

  Alt 25. Nov 2007, 15:40
Hi,

weil es sinnlos ist, eine Prozedur zu verwenden, wenn es nur um eine winzige Anweisung geht. So ein inc ist mit einer einzelnen Maschinenanweisung übersetzbar, dafür das ganze Register-auf-Stack-sichern, call, inc, ret, register-von-stack-holen, in meiner Schleife multipliziert sich die zusätzliche Verlangsamung. Die Übersichtlichkeit war gerade das Argument, weshalb ich es lieber inline hätte. Aber ohne inline verzichte ich lieber auf den overhead. In diesem Fall wäre inline sogar eine Speicherplatzersparnis, was es sonst meist nicht ist, denn inc verbraucht weniger Speicher als push, call, pop. Es sind also nicht ein paar vervielfachte Nanosekunden, sondern auch noch ein paar vervielfachte Bytes. Außerdem handelt es sich tatsächlich um zwei mini-Procs (die andere wäre dec) ind eine Funktion (bar > 0). Nochmal das ganze vervielfacht.

Wäre es komplexer, würde ich es dann wirklich auslagern. Durch Optimierung eines Problemes ist für foo2 jedoch nur noch das inc übriggeblieben, und da lohnt es sich nicht mehr, außer, man verwendet eben inline, was aber nicht geht. Nun kann man aber bei inc nicht erkennen, dass der eigentliche Hintergrund, was getan werden soll, foo2 ist. Ich will sozusagen den Namen foo2 für die Anweisung inc(bar) verwenden.

Weder die vielen Nanosekunden noch die Bytes sind ein Problem. Es geht eher ums Prinzip. Übersichtlichkeit und lesbarkeit leiden unter meiner Lösung mit dem Kommentar nicht wirklich, da es so kleine Änderungen sind. Und warten werde ich es wohl nie müssen, da im Dezember Abgabe des Projekts ist und ich dann nier wieder damit zu tun haben muss (Schulaufgabe). Aber mit sinnlos-procs hätte ich ein schlechtes Gewissen.

Mfg
FAlter
Felix Alter
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Makro-Ersatz

  Alt 25. Nov 2007, 16:54
Ah, dann ist es klar. Ich dachte, das war ein Beispiel...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz