Laufzeit messen, Split aus: Laufzeit messen



  • An anderer Stelle hier, hat jemand seine kleine Klasse für solche Messungen vorgestellt. Die finde ich recht nützlich:

    #pragma once
    
    #include <windows.h>
    #include <iostream>
    
    namespace resolution
    {
        static const double ns = 1000000000.0;
        static const double us = 1000000.0;
        static const double ms = 1000.0;
        static const double s  = 1.0;
    }
    class stopwatch
    {
        private:
            double res;
            double pc_freq;
            __int64 start_time;
            __int64 stop_time;
        public:
            stopwatch(double r = resolution::ms) : res(r), pc_freq(0.0), start_time(0), stop_time(0) {}
    
            void start()
            {
                LARGE_INTEGER li;
                if( !QueryPerformanceFrequency(&li) )
                    std::cerr << "QueryPerformanceFrequency Not Available";
    
                pc_freq = double(li.QuadPart)/res;
    
                QueryPerformanceCounter(&li);
                start_time = li.QuadPart;
            }
    
            void stop()
            {
                LARGE_INTEGER li;
                QueryPerformanceCounter(&li);
                stop_time = li.QuadPart;
            }
    
            double elapsed()
            {
                return (stop_time-start_time)/pc_freq;
            }
    };
    

    Beispiel:

    #include "stopwatch.h"
    #include <iostream>
    
    int main()
    {
    
        stopwatch timer(resolution::ms);  
    
        timer.start();
    
        //do something
    
        timer.stop();
    
        std::cout << "\ntime: " << timer.elapsed() << " ms";
    
    }
    




  • Da blicke ich wieder gar nicht mehr durch. Das ist echt frustrierend, je mehr man versteht, begreift man, was man nicht versteht.

    Manchmal frage ich mich, ob diese Beschäftigung in irgendeiner Weise sinnvoll ist. Kaum meint man, ein Erfolgsergebnis zu haben, kommt irgendein Code um die Ecke, der einen wieder wieder auf die Stufe eines Hello World-Programm einordnet.


  • Mod

    Entschuldigung für die späte Reaktion. Der alte Thread war nur durch einen Nekrotroll hervor geholt worden und ist hier nicht weiter relevant, außer dass es allgemein darum ging, wie man Benchmarks durchführt. Ich habe die lesenswerten neuen Beiträge abgetrennt und hier zusammengefasst.


Log in to reply