Laufzeit
-
ich würde ein ergebnis gern abspeichern nach beispielsweise 20 sekunden laufzeit, wie getht das?
-
Anfangzeit = clock()
Bei jedem Durchgang misst du dann mit clock() - Anfangszeit wieviel Zeit vergangen ist. Wenn >= 20, dann return oder break bei einer Schleife.
-
ja, so habe ich das:
if((clock()-prgstart)< 5000){
jedoch verläauft dieses nur bei großen zahlen. also diese 5000 sind keine sekunden, aber entsprechen etwa 5 sekunden. kann man irgendwo sehen, ob das programm mit sekunden rechnet, oder eigenen zeiteinheit?
-
CLOCKS_PER_SEC
-
also müsste es lauten:
if((CLOCKS_PER_SEC - prgstart)< 5){
, wenn ich das Programm nur 5 Sekunden lang laufen lassen will??? Weil bei mir passiert da ehrlich gesagt gar nichts...
-
Heidelberger schrieb:
also müsste es lauten:
if((CLOCKS_PER_SEC - prgstart)< 5){
, wenn ich das Programm nur 5 Sekunden lang laufen lassen will??? Weil bei mir passiert da ehrlich gesagt gar nichts...
Häh, wie kommst du da drauf? Was hast du denn zu CLOCKS_PER_SEC gefunden, um auf diese Idee zu kommen? Der Name sagt doch schon, dass dies die Anzahl der clock-Schläge pro Sekunde ist.
-
CLOCKS_PER_SEC als sprechenden Namen muss man nur verstehen oder nachlesen.
Die Deutung 'Holzschuhe_für_trockene Füsse' ist jedenfalls falsch!
Ansonsten kommt der Fragesteller langsam auf den richtigen Weg.
-
Hallo,
die beste Anlaufstelle ist immernoch in der Doku nachzuschlagen:http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.15.html#clock
(Erster Satz).
Liebe Grüße
Steffo
-
ok, danke.
ich habe jetzt:if((ticks1/CLOCKS_PER_SEC - prgstart/CLOCKS_PER_SEC)< 3){
prgstart habe ich zu programmbeginn belegt, und ticks1 kurz vor dem Algorithmus. Wenn ich diesen laufen lasse, dann dauert dieser nicht wie gewünscht 3 Sekunden, sondern ca 10 Sekunden. Was ist daran falsch? Ich will doch nur, dass der Algorithmus 3 Sekunden durchläuft...
-
Heidelberger schrieb:
prgstart habe ich zu programmbeginn belegt, und ticks1 kurz vor dem Algorithmus.
Und warum sollte das jemals abbrechen? Dein Programm läuft einfach ganz durch.
-
Über einen Einzeiler kann man schlecht etwas sagen.
Ich würde auf > 3 und nicht < 3 prüfen und dann ein ein return (bei Rekursion) oder ein break (bei Schleifen) machen.
-
Und rechne mit großen Zahlen:
((ticks1 - prgstart) < (3 * CLOCKS_PER_SEC))
-
ich bekomme es nach etlichen versuchen nicht hin.
Existiert eine Anwendung, sodass ich einen Algorithmus oder was auch immer, beispielsweise 5 Sekunden laufen lasse. Wie bekommt man dieses hin?
-
Wie viel Hilfe willst du denn noch? Das ist langsam nicht mehr zu fassen:
#include <stdio.h> #include <time.h> int main() { time_t start = clock(); unsigned long long zaehler = 0; while (clock() - start < 5 * CLOCKS_PER_SEC) ++zaehler; printf("In 5 Sekunden konnte der Zähler %lld Mal erhöht werden\n", zaehler); }