Einzelnen Beitrag anzeigen

tommie-lie
(Gast)

n/a Beiträge
 
#37

Re: Was ist schneller, Funktion oder Prozedure?

  Alt 28. Okt 2005, 22:52
Zitat von dizzy:
Wenn ich mich recht entsinne werden Ausdrücke wie "x := sqrt(2)*10;" vom Compiler ausgerechnet und als Konstante implementiert (weiss nicht mehr ob das bei Delphi oder C# der Fall war).
Berechnungen schreiben sich natürlicher und erhöhen die Übersichtlichkeit, wenn man sie aufsplitten kann und nicht vollständig aufgelöst im Code stehen, zum Beispiel wenn man Datenstrukturen aus Dateien liest, die sich aus mehreren Einzelkomponenten zusammensetzen. Außerdem lässt sich ein einfacher (und der des Delphi-Optimizers ist nur einfach) Matheparser relativ problemlos implementieren. Die Delphi-Hilfe habe ich grad' nicht zur Hand, aber sqrt() müsste Compiler-Magic sein, da ich die Funktion gerade nicht finden kann. Der Aufwand, für die durch Compilermagic implementierten Funktionen eine Auflösung zu schreiben, ist wohl nur gering. Ich schätze, in selbstgeschriebenen Funktionen, die du mit einem konstanten Parameter aufrufst, rechnet er das Ergebnis nicht aus.

Zitat von dizzy:
Und ich meine es wäre auch (MS)C# gewesen der eine Schleife in der immer nur ein konstanter Wert auf eine Variable addiert wird, im Vorhinein komplett ausrechnet und nur mit einer Konstanten ohne Schleife implementiert.
Das machen alle gängigen C++-Compiler so, und wenn's der C#-Compiler nicht machen würde, würde's der JIT machen.

Zitat von dizzy:
Wenn so etwas einfaches nicht erkannt/verbessert wird, wie kann ich mich da noch darauf verlassen dass es in komplexeren Zusammenhängen besser läuft?
Es ist in komplexen Vorgängen nicht besser


Edit: Total verquottelt.
  Mit Zitat antworten Zitat