Source kovertieren
-
Hallo Forum,
ich möchte diesen Source aus einem Linux Projekt nach Win konvertieren.
Was macht dieser Source? Soweit ich gelesen habe wird nach einer Zeit (hier 3 Sek) ein Interrupt gesendet der aufgefangen werden muß. Dieser unterbricht die einzelnen Benchmarks -> Es wird also geschaut wieviel schafft die CPU in 3 Sek. Wie macht man das unter Windows? Habt Ihr ein Api Beispiel?static bool finished = false; static void interruptBenchmark() { finished = true; } static void bench_1(void) { clock_t startTime, endTime; alarm(3); startTime = clock(); // ... } void DoBenchmark(void) { struct sigaction act; act.sa_handler = interruptBench; sigemptyset(&act.sa_mask); act.sa_flags = 0; sigaction(SIGALRM, &act, 0); printf("Benchmark"); bench_1(); // Funktionen die wild rumrechnen. bench_r(); printf("\n"); bench_2(); printf("\n"); return; }
-
1. Hm... wenn mir keiner antwortet dann streichen wir das mit Besipiel Source.
2. Könntet Ihr mir ein paar Stichworte geben? Wie macht man das unter Windows das alle 3 Minuten ein Interrupt ausgelöst wird? So dass diese finished Variable auf True geht?
-
Vielleicht ist ein Timer eine Möglichkeit für dich:
http://msdn.microsoft.com/en-us/library/ms644906(VS.85).aspx
(Link per Copy&Paste nutzen, das Forum macht die Hyperlinks kaputt, wenn () drin sind)Dort kannst du eine Funktion spezifizieren, die nach Ablauf des Timers aufgerufen wird, ganz analog zu deinem Interrupt.
Dass die Zeitschätzungen sowohl unter Linux wie auch Windows nicht 100% genau sind, weißt du ja.
-
nicht 100%ig ist gut. so ein benchmark sagt ungefär ziemlich genau gar nix aus^^
-
Hab mich noch gar nicht bedankt. Danke:)
Ich habe jetzt mit CreateTimerQueueTimer() arangiert.