![]() |
Re: Rueckgabewerte von ueberladenen Funktionen?
1. Ich will nen neuen Firmenrechner :( (viel zu lahm)
2. bei mir sind Functionen schneller (s.u.) 3. sorry für OT :pale:
Code:
EDIT:
Functiontest : 85139024 Ticks
Proceduretest: 108814560 Ticks AHA !!! zuvor war MIT IDE und das ist ohne:
Code:
schwankt ziemlich ....
Functiontest : 157207020 Ticks
Proceduretest: 129074536 Ticks Functiontest : 92841112 Ticks Proceduretest: 104016952 Ticks Functiontest : 104332344 Ticks Proceduretest: 101967576 Ticks |
Re: Rueckgabewerte von ueberladenen Funktionen?
aber nach 800mal sieht es nicht gerade aus...
ich meine, eine prozedur ist doch auch nur ein call bzw. jmp/jr. wenn man nun wüsste, in welchen maschinencode das var (klar, eine variable wird gesetzt) bzw. das reult:= / return umgesetzt wird, könnte man daraus natürlich rückschlüsse ziehen. aber ist das nicht ein wenig off topic? |
Re: Rueckgabewerte von ueberladenen Funktionen?
Ich hab nen P4 1,8GHz, falls das was zur Sache tut ;) Aber anscheinend ist der Zeitunterschied Prozedur - Funktion Prozessorabhängig.
Zitat:
Code:
Im Beispielcode erzeugt der Compiler nur ein
MOV EAX, ...
Code:
Bei Prozeduren siehts anders aus, in diesem Fall käme
ADD EAX, 1
Code:
und als Standard zum Result-setzen
ADD EAX, 1
MOV [EDX], EAX
Code:
MOV addresse/[register], ...
|
Re: Rueckgabewerte von ueberladenen Funktionen?
QueryPerformanceCounter ist halt auch schon Prozessorabhängig!
DerDan |
Re: Rueckgabewerte von ueberladenen Funktionen?
Zitat:
|
Re: Rueckgabewerte von ueberladenen Funktionen?
hört auf zu streiten -
Funktionen haben einen Rückgabewert - und in Rückgabewerte werden die Ergebnise reinkopiert, dafür gehen Rechenzyklen drauf - wenn mein c++ e weng besser wär würdichs euch mit dem Post/Prefix dings wie bei ++i/i++ erklärn - wo auch ++i schneller is wie jeder weis [edit] es sollte vllt noch gesagt werden das prozeduren nicht _immer_ schneller sind, bei bestimmten mathematischen konstellationen können auch funktionen gleichschnell oder gar _schneller_ sein blah - nehmt die sache nicht so ernst - soooooo zeitkritische programme schreibt ihr eh nicht. [/edit] |
Re: Rueckgabewerte von ueberladenen Funktionen?
@barf00s
da muss ich dir aber wiedersprechen :) bei Funktionen wird der rückgabewert ins register EAX geschrieben bei Prozeduren mit VAR Parametern wird das an eine Speicherstelle geschrieben (was vorher schon erwähnt wurde) demnach sind Prozeduren langsamer WENN das zuweisen oft vorgenommen wird, d.h. oft in den VAR parameter geschrieben wird. aber nen wirklichen merkbaren unterschied gibt es wirklich nicht. kommt auch drauf anwie der compiler das optimiert, kann ja sein das der bei ner prozedur auch immer alles erst in eax schreibt udn am ende in die variable dann ist das gleich schnell |
Re: Rueckgabewerte von ueberladenen Funktionen?
ich wiedersprech dir ja auch nicht - hab ja nicht gesagt das procs _immer_ schneller sind als _funcs_
beispiel wäre da matrizenrechnerreien oder son blödsinn - naja auch egal ;) wir wissen wies gemeint war |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz