PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++: Zeit messen für bestimmte Anweisungsblöcke



feuerfuchs
25.12.2007, 23:43
Hi,
ich will mit C++ die Zeit für Bestimmte Anweisungsblöcke messen.
Angenommen man hat folgenden Code:

// ForSchleife.cpp - Quadratzahlen berechnen
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
int bis;
int loop;
int quadr;

cout << "Quadratzahlen berechnen von 1 bis :" << endl;
cin >> bis;

for(loop = 1; loop <= bis; ++loop)
{
// Beginn der Zeitmessung
quadr = loop * loop;
// Ende der Zeitmessung
cout << "Das Quadrat von " << loop << " ist: "
<< quadr << endl;
}

getch();
return 0;
}


Ich möchte also - wie man es den Kommentaren entnehmen kann - nur die benötigte Zeit für die Rechnung und die Speicherung in "quadr" wissen, nicht für den Rest.
thx für die Antworten...

Bismark2
26.12.2007, 10:23
Hi,

gehe mal auf die Seite Tutorials.de << forum << Programmieren und dort auf die entsprechende Seite.

Dort findest du die gleiche Frage und die Antworten.
:) :) :) :)

Kampfgnom
27.12.2007, 01:45
Du willst aber doch nicht wissen wie lange eine CPU braucht um zwei Integer miteinander zu multiplizieren... Das ist nämlich Kürzer als du messen kannst.
Ich hab nicht besonders viel Ahnung von Prozessordesign, würde aber behaupten dass man für eine Multiplikation genau einen Takt braucht also bei einem 2,0 GHz Prozessor genau 1 / 2 Milliarden Sekunden ;)
Und wenn er halt 20 Takte braucht dann halt 20 / 2 Millarden Sekunden. Was immernoch recht wenig ist ^^

moagnus
27.12.2007, 07:00
Hm, ne. Ne Multiplikation wird üblicherweise über ne Shiftoperation und anschließende Addition gelöst. :D