Parallele Programmabläufe

Psyjo

Mitglied
Hallo!

Ich habe mir ein kleines Programm gebaut das Primzaklen berechnet.
Zusätzlich würde ich jezt gerne noch einen Timer parallel dazu laufen lassen, habe aber keine idee wie ich das machen könnte :confused:


MfG
 
Wie waere es wenn due infach vorher die Systemzeit abfragst und nacher und dann von der Endzeit die Startzeit subtrahierst?
Das sollte dir eigneltrich das gewünschte Ergebnis liefern.
Schreibst du eigentlich in C oder in C++?
 
Ganz einfach:

Code:
DWORD a,b,c;

a = timeGetTime();

// Alles ausrechnen

b = timeGetTime();

c = b-a;

c ist die Zeit, die gebraucht wurde in Millisekunden
timeGetTime() liefert die Zeit die seit dem Systemstart vergangen ist ( Millisekunden | mmsystem.h, winmm.lib ) ;)
 
Super ! besten Dank :)
Und jezt nochwas: Wie kann ich die Menge an Nachkommastellen bei der Ausgabe einer Float-Variablen bestimmen?

In Pascal--> Variable: (Vorkmmastellen): (Nachkommasteken).
Aber wie das in CPP gehen soll weis ich überhaupt nicht...


PS: ich bin die gesamte nächste Woche nicht zu Hause aber möglicherweise schaue ich in dieser Zeit nochmal rein -> nicht wundern wenns länger dauert ;)

MfG
 
moin


Wenn du die Ausgabe per printf machst musst du statt %f z.B %.2f nehmen.

Nutzt du cout machst du es so:
Code:
cout<< setprecision(3) << variable;
oder
cout<< setw(3) << variable;


mfg
umbrasaxum
 
Wenn du eine sehr kurze Zeit hast die du messen willst (die Berechnung dauert je nach Primzahl ja nicht so lange) kannst du auch den 64 bit Pentium Zyklus Zähler auslesen. Dies geht jedoch nicht über die normalen C Funktionen:

Code:
typedef struct{
	long l,h;
}int64;
 
void rdtesc64{int64 *ptr):
#pragma aus rdtec64 = "db 0fh""mov [ebx],eax""mov [ebx+4],edx"\
								   parm nomemory [ebx] modify exact nomemory [eax edx];
 
int main(void)
{
 int64 time1;
 
rdtesc64(&time1);
 
return 0;
}

Ich hoffe mal ich hab mich nicht verschrieben es sollte eigentlich funktioniern

Gruß Lemi
 
Flegmon hat gesagt.:
Code:
DWORD a,b,c;

a = timeGetTime();

// Alles ausrechnen

b = timeGetTime();

c = b-a;

Hmm... ich hab das auch mal versucht einzubinden, doch irgendwie liefert mir der Compiler immer für die Methode timeGetTime() - "nichtdeklarierter Bezeichner".
Eingebunden hab ich folgendes:
Code:
#include "stdafx.h"
#include <windows.h>

#include <vector>
#include "math.h"

#pragma comment(lib, "Winmm.lib")

using namespace std;

(vector und math brauch ich für diverse andere Dinge; andere von mir geschriebene headerdateien hab ich mal rausgelassen). Was könnte der Grund sein, dass die Funktion bei mir nicht geht? Muss ich beim Einbinden ne bestimmte Reihenfolge beachten, außer dass stdafx immer zuerst stehen muss?

edit: hab den fehler gefunden. Musste noch die mmsystem.h einbinden. nix für ungut. :rolleyes:
 
Zuletzt bearbeitet:
Zurück