C obtenir le temps

[Résolu]
Signaler
Messages postés
100
Date d'inscription
lundi 30 octobre 2006
Statut
Membre
Dernière intervention
14 avril 2009
-
Messages postés
202
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
6 mars 2010
-
Bonjour,

J'ai un programme qui permet de trier un document. Mais le programme est assez long a executer : il met autour de 60s pour trier un document de 15 000 lignes.
Je penses qu'il est possible de reduire un peu ce temps mais je ne sais pas quel partie du programme prend le plus de temps.

Est-ce que quelqu'un connaitrait les fonctions en C qui permette de donner le temps stockable dans un int.

Merci

7 réponses

Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Windows : GetTickCount
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2013

Salut !
Je dirai surtout l'optimisation de code par profile dans ton cas.
Le but c'est quand même de savoir qu'est-ce qui te prend le plus de temps, pas de savoir l'heure qu'il est. Il y a aussi des logiciels qui te permettent de savoir dans quelle fonction ton programme reste le plus clair de son temps mais j'ai plus les noms en tête.
Messages postés
100
Date d'inscription
lundi 30 octobre 2006
Statut
Membre
Dernière intervention
14 avril 2009

ctx_man -> qu'entends tu par optimisation de code par profil ?

bien entendu je veux savoir l'heure pour pouvoir quel partie de mon programme me prend le plus de temps :)
Messages postés
100
Date d'inscription
lundi 30 octobre 2006
Statut
Membre
Dernière intervention
14 avril 2009

et..
juju12 -> merci
rt15 -> merci

:)
Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2013

En fait ce que tu va faire c'est des calcul de temps devant chacune des appels de tes fonctions pour savoir laquel te prend le plus de temps.
Seulement :
Faire des calcul de temps prend du temps
Si une fonctionmet 0.5ms à s'executer, GetTickCount te renverra 1ms, si cette fonction s'éxécute 150 000 000 000 de fois, tu va faire comment pour calculer le temps réellement passé dans cette fonction ? (surtout en comptant qu'il y a une erreur de 0.5ms sur chaque tour)

Le l'optimisation par profile sert justement à ca. Tu compile ton programme en optimisation par profile, tu fait tourner ton programme le plus longtemps possible en lui faisant se servir du maximum des fonctions qu'il possède. Et ca va te créer un profile que tu utilise ensuite dans l'optimisation du programme.

Pour les tutos et de meilleur explication : Google

Comme je le disais plus haut, il y a aussi des programme qui peuvent vérifier dans quel module ton programme passe le plus clair de son temps. Mais j'ai plus les noms en tête, donc pareil : Google.
Messages postés
202
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
6 mars 2010

Si tu veut vraiment voir ce qui prend plus de temps dans ton programme utilise un profiler. CodeAnalyst est très bien pour ça et en plus il est gratuit.


Voili,Voilou [;)]