Zeit messen ab Programmstart

Anfängerfragen zum Programmieren mit PureBasic.
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Zeit messen ab Programmstart

Beitrag von D4uS1 »

Ich würde gerne wissen ob es möglich ist, mit einer Variable die Zeit seit dem Programmstart zu bestimmen, und diese auch wieder zurückzusetzen. Elapsedmiliseconds() macht das ja nur seit dem Start des Computers.

Danke im Voraus
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

du brauchst nur am programmbeginn die startzeit festhalten, und dann immer abziehen:

Code: Alles auswählen

t_start = ElapsedMilliseconds()

For i=0 To 100
  Delay(20)
Next

laufzeit_jetzt = ElapsedMilliseconds() - t_start
Debug "das programm läuft seit " + Str(laufzeit_jetzt) + "ms"


Delay(2300)


laufzeit_jetzt = ElapsedMilliseconds() - t_start
Debug "und jetzt schon seit insgesamt " + Str(laufzeit_jetzt) + "ms"
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Elapsedmiliseconds() ist schon ok.
Dann noch ein wenig Grundschulwissen -> Subtraktion
und Du hast es fast schon.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

für das zurücksetzen wiederholst du einfach das
t_start = ElapsedMilliseconds()

Code: Alles auswählen

t_start = ElapsedMilliseconds()

For i=0 To 100
  Delay(20)
Next

laufzeit_jetzt = ElapsedMilliseconds() - t_start
Debug "das programm läuft seit " + Str(laufzeit_jetzt) + "ms"

Delay(2300)

laufzeit_jetzt = ElapsedMilliseconds() - t_start
Debug "und jetzt schon seit insgesamt " + Str(laufzeit_jetzt) + "ms"


Debug ""
Debug "und hier wird zurückgesetzt.."
t_start = ElapsedMilliseconds()

Delay(430)

laufzeit_jetzt = ElapsedMilliseconds() - t_start
Debug "das programm läuft seit dem zurücksetzen " + Str(laufzeit_jetzt) + "ms"
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Genau.

Übrigens: Wenn du auf die Millisekunden verzeichten kannst, dann nimm doch Date() statt ElapsedMilliseconds().
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> dann nimm doch Date() statt ElapsedMilliseconds().

...und warumm? :?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Date gibt Sekunden zurück, und keine Millisekunden. Oder mit anderen Worten: bei Date() muss 1000 mal mehr Zeit vergehen als bei ElapsedMilliseconds(), bevor die Variable "umkippt". :wink:
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

hardfalcon hat geschrieben:Date gibt Sekunden zurück
jupp. Ich denke, dass die Laufzeit eines Programmes nicht so fein aufgelöst
werden muss, wie es bei ElapsedMilliseconds() der Fall ist. Außerdem wird
ElapsedMilliseconds() bei entsprechend langer Laufzeit des Rechners wieder
auf 0 springen. Wenn das entsprechende Programm beispielsweise auf einem
Server eingesetzt wird, würde ich persönlich auch Date() verwenden.

Grüße ... Kiffi
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Wenn das entsprechende Programm beispielsweise auf einem
> Server eingesetzt wird, würde ich persönlich auch Date() verwenden.

yup, das isn argument...

> dass die Laufzeit eines Programmes nicht so fein aufgelöst werden muss

myoa... stimmt schon... normal nich..

aber viele programme müssen auch nicht drauf ausgelegt werden,
zeiträume von länger als einer woche zu messen...

wo beides nicht nötig ist, ist es reine geschmackssache, welches man verwenden will...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Beitrag von D4uS1 »

Danke für die Antworten, funktioniert alles einwandfrei.
Antworten