C++ , Minuterie, Millisecondes

#include <iostream>
#include <conio.h>
#include <ctime>



using namespace std;

double diffclock(clock_t clock1,clock_t clock2)
{
    double diffticks=clock1-clock2;
    double diffms=(diffticks)/(CLOCKS_PER_SEC/1000);
    return diffms;
}
int main()
{
    clock_t start = clock();
    for(int i=0;;i++)
    {

    if(i==10000)break;
    }
    clock_t end = clock();

    cout << diffclock(start,end)<<endl;

    getch();
return 0;
}

Donc mon problème vient qu'il me renvoie un 0, bien être stright je veux vérifier combien de temps mon programme fonctionne...
J'ai trouvé des tonnes de conneries sur internet, ainsi la plupart du temps il s'agit de la même point d'obtenir un 0 car le début et la fin est la même

Ces problèmes va à C++ rappelez-vous : <

Hasard, votre optimizer est jeter votre boucle for car elle ne fait rien? Peut-être ajouter une affectation à un mondial à l'intérieur. Alos, même si elle fonctionne, vous avez le début et la fin vers l'arrière de sorte que le temps sera négatif.
Même si la boucle n'est pas optimisé, il ya une bonne chance que le comptage de 10000 prend moins d'une milliseconde. Les ordinateurs modernes sont assez rapide.
Pourquoi faites-vous cela? Si vous essayez de référence, la boucle est probablement pas un bon test.
Le temps requis pour exécuter le code entre start et end 0.
Vous disposez également d'un potentiel de division entière problème en fonction de la valeur de CLOCKS_PER_SEC sur votre système de changement double diffms=(diffticks)/(CLOCKS_PER_SEC/1000) à double diffms=diffticks/(CLOCKS_PER_SEC/1000.0).

OriginalL'auteur Przmak | 2013-03-05