Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » die Zeit für die Ausführung des Programms ermitteln !!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.11.2006, 23:38 Uhr
~jenk
Gast


Hallo zusammen,

ich habe ein kleines Programm geschrieben (Konsoleanwendung), das ziemlich viele Rechnungen macht und sie dann ausgibt.

Jetzt würde ich gerne die gesamte Zeit für die Ausführung des Programms (d.h. die Zeit für die Rechnungen und Ausgabe) ermitteln und sie dann am Schluß ausgeben.
Hat jemand eine Idee, wie ich so machen kann?

Danke im Voraus.
jenk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.11.2006, 23:43 Uhr
Blubber2063



Geh mal auf die Suche Virtual hat glaub ich hier mal nen Stoppuhr Object mit der Winapi gebaut, gibt verschiedene Methoden mit unterschiedlicher Genauigkeit, allerdings solltest du dich nicht darauf verlassen das diese Zeiten immer gleich sind, du solltest da schon mehrere Testläufe machen um den Durchschnittswert zu ermitteln.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.11.2006, 00:32 Uhr
~jenk
Gast


Danke für die schnelle Antwort.
Ich habe die Stoppuhr-Klase von virtual gefunden, aber ich kann 's leider bei mir nicht kompilieren, da sie für Linux bestimmt ist.
Ich habe bekomme Fehler beim Inkludieren von <sys/time.h> und den struct "timeval".
sys/time.h habe ich dann in timer.h umgeändert, aber das mit dem "timeval" wiß ich nicht, wie lösen kann.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.11.2006, 00:37 Uhr
~jenk
Gast


ich habe vergessen zu erwähnen, dass die Genauigkeit der Stoppuhr nicht entscheidend ist. Es geht einfach darum, den "ungefähr-" Wert zu ermitteln.

Geht 's auch mit anderen einfach Methoden?

Danke, jenk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.11.2006, 01:04 Uhr
Blubber2063



Ich hab die mal modifiziert um sie unter Windows zu nutzen, ist aber nur eine Möglichkeit Zeiten in Windows zu messen, hatte sie hier auch irgendwo gefunden.
timeglass.h

C++:
#ifndef __timeglas__
#define __timeglas__

namespace bjbreitm{

    class Timeglass{
        public:
            Timeglass();
            ~Timeglass();
            void start();
            void stop();
            double getElapsedTime();
            long getRElapsedTime();
            void renewScale();
        private:
            long long frequenz;
            long long started;
            long long end;
            double elapsedTime;
            double scale;
    };

}

#endif


timeglass.cpp


C++:
#include "timeglass.h"
#include <windows.h>

namespace bjbreitm{

        Timeglass::Timeglass(){
                QueryPerformanceFrequency((LARGE_INTEGER*)&frequenz);
                scale = 100.0/frequenz;
        }

        Timeglass::~Timeglass(){

        }

        void Timeglass::start(){
                QueryPerformanceCounter((LARGE_INTEGER*)&started);
        }

        void Timeglass::stop(){
                QueryPerformanceCounter((LARGE_INTEGER*)&end);
                elapsedTime = (end-started)*scale;
        }

        double Timeglass::getElapsedTime(){
                return elapsedTime;
        }

        long Timeglass::getRElapsedTime(){
                return (long) elapsedTime;
        }

}



glaub das war milisekunden Genauigkeit, aber ist ja wegen Nebenläufigkeit eh nur begrenzt aussagefähig.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.11.2006, 11:00 Uhr
RedEagle




C++:
#include <windows.h>

//...
unsigned long time = GetTickCount();
funktion();
time = GetTickCount()-time;

printf("Die Funktion \"funktion()\" benötigte %d ms",time);

--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: