Geschwindigkeitsvergleich



  • Hallo,

    ich habe ein Problem mit folgendem Codestück. Warum ist folgendes Codestück langsamer (7500ms)

    int f;
        int j;
        int time = GetMilliCount();
        for(int i=0; i<1000; i++) {
            for(j=0; j<1500+i; i++)
                f = j;
        }
        printf("%i\n", GetMilliCount()-time);
    

    als das hier (6400ms):

    int time = GetMilliCount();
        for(int i=0; i<1000; i++) {
            int f;
            int j;
            for(j=0; j<1500+i; i++)
                f = j;
        }
        printf("%i\n", GetMilliCount()-time);
    

    Ich lagere sogar das j aus um die Erzeugung außerhalb der Schleife zu unterstützen. Hat jemand eine Idee?

    Dane, donnerCobra


  • Mod

    Niemand interessiert sich ernsthaft für die Geschwindigkeit von Code, der ohne jede Optimierung compiliert wurde.



  • Vermutlich weil das Käse ist. Meintest du nicht j++ im Update-Ausdruck der inneren Schleife? Und was macht die eckige Klammer da einsam und verlassen im ersten Codestück? Bitte realen Code posten!



  • Die eckige Klammer kam von [ -cpp- ]



  • So ist die Zeitmessung an sich auch etwas schwierig, da du nicht weisst wann dein Programmablauf vom Scheduler unterbrochen wird.
    Es kann also durchaus sein, dass dein erster Code schneller ist aber eben öfter/länger unterbrochen wird als der zweite.


Log in to reply