geschwindikeitsvergleich der variablen
Verfasst: 24.08.2006 19:55
ich habe auf die schnelle ein programm geschrieben um die berechnungszeiten der einzelnen variablen zu messen.
das ergebnis bei mir war
long 2469
quad 6063
float 1140
double 1344
das quad langsamer als long ist leuchtet mir ein
aber das die fließkomma variablen schneller sind als die integer sind versteh ich nicht. ich dachte immer integer sind schneller???
das auch noch kaum ein unterschied zwischen float und double gibt, ist mir auch nicht klar. 2byte gegen 4byte beim integer ist der unterschied sehr gross
Code: Alles auswählen
;geschwindigkeitstest
EnableExplicit
Define TESTl.l=0;long
Define TESTq.q=0;quad
Define TESTf.f=0;fload
Define TESTd.d=0;double
Define RESULTl.l
Define RESULTq.q
Define RESULTf.f
Define RESULTd.d
Define Loop.l
Define timerStart.l
Define timerl.l
Define timerq.l
Define timerf.l
Define timerd.l
timerstart = ElapsedMilliseconds()
For Loop=0 To 90000000
TESTl +1
RESULTl=TESTl*TESTl
RESULTl=RESULTl/TESTl
RESULTl=TESTl+TESTl
RESULTl=RESULTl-TESTl
Next
timerl = ElapsedMilliseconds()-timerstart
timerstart = ElapsedMilliseconds()
For Loop=0 To 90000000
TESTq +1
RESULTq=TESTq*TESTq
RESULTq=RESULTq/TESTq
RESULTq=TESTq+TESTq
RESULTq=RESULTq-TESTq
Next
timerq = ElapsedMilliseconds()-timerstart
timerstart = ElapsedMilliseconds()
For Loop=0 To 90000000
TESTf +1
RESULTf=TESTf*TESTf
RESULTf=RESULTf/TESTf
RESULTf=TESTf+TESTf
RESULTf=RESULTf-TESTf
Next
timerf = ElapsedMilliseconds()-timerstart
timerstart = ElapsedMilliseconds()
For Loop=0 To 90000000
TESTd +1
RESULTd=TESTd*TESTd
RESULTd=RESULTd/TESTd
RESULTd=TESTd+TESTd
RESULTd=RESULTd-TESTd
Next
timerd = ElapsedMilliseconds()-timerstart
OpenConsole()
PrintN("long "+Str(timerl))
PrintN("quad "+Str(timerq))
PrintN("float "+Str(timerf))
PrintN("double "+Str(timerd))
Input()
long 2469
quad 6063
float 1140
double 1344
das quad langsamer als long ist leuchtet mir ein
aber das die fließkomma variablen schneller sind als die integer sind versteh ich nicht. ich dachte immer integer sind schneller???
das auch noch kaum ein unterschied zwischen float und double gibt, ist mir auch nicht klar. 2byte gegen 4byte beim integer ist der unterschied sehr gross