Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#38

Re: Was ist schneller, Funktion oder Prozedure?

  Alt 29. Okt 2005, 00:24
Zitat von Flocke:
Nicht wenn der Optimizer erkennt, dass ergy danach überhaupt nicht mehr benötigt wird - allerdings sollte er dann eigentlich auch erkennen, dass das für ergx ebenfalls gilt.
@SMO: Genau das war mein Punkt. Und _nur_ das.
Danke Flocke - ich hätts heut irgendwie nicht besser/direkter schreiben können

Zitat von Flocke:
Nichtsdestotrotz - Delphi optimiert nicht so, wie es z.B. ein optimierender C- oder C++-Compiler tut. Dieser ist normalerweise auch dafür ausgelegt, total stupiden Code (wie in unserem Beispiel) zu optimieren - wenn sein Input nämlich von anderen Programmen wie lex oder yacc generiert wird, dann kann es sein, dass wirklich 10 mal "x = 10;" untereinander steht.
Klingt logisch.

Zitat von tommie-lie:
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.
Oh, um sqrt() gings mir garnicht. Dummes Beispiel... Ich meinte generell einfach, dass konstante Teile einfacher mathematischer Formeln im Vorfeld ausgerechnet werden, und nicht zu Runtime wie es im Code steht. Was die Sache mit der Übersichtlichkeit angeht: Ich bin sogar schon dazu übergegangen tatsächlich konstante Teile einer Formel selber auszurechnen, vor allem wenn dazu eine Umstellung des ursprünglich geschriebenen nötig war, die ich Delphi nicht zutraute. Der Übersicht wegen steht die Ursprungsformel + Rechenweg als Kommentar dabei. Da jeder Code ohnehin kommentiert werden muss... . Aber das ist ja garnicht was ich will - eigentlich gehts mir ja darum das Konzept: "Könnte der Coder auch von Hand machen, aber ich tu's wenn er es nicht tut" von eben dieser Optimierung von mathem. Ausdrücken auf die gesamte Optmierung ausgeweitet würde. Das war Sinn und Zweck meiner obigen Aussage (Ich muss zugeben - ich drücke mich heut in der Tat nicht überall so eindeutig aus... sorry)

Zitat von tommie-lie:
Es ist in komplexen Vorgängen nicht besser
Da gehe ich von aus
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat