C# - RÉCUPÉRATION DU TEMPS D'EXÉCUTION D'UNE FONCTION OU D'UNE ÉTAPE

Signaler
Messages postés
540
Date d'inscription
dimanche 29 décembre 2002
Statut
Modérateur
Dernière intervention
13 mai 2011
-
fredatcs
Messages postés
14
Date d'inscription
mercredi 2 mars 2005
Statut
Membre
Dernière intervention
20 juillet 2010
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/35620-c-recuperation-du-temps-d-execution-d-une-fonction-ou-d-une-etape

fredatcs
Messages postés
14
Date d'inscription
mercredi 2 mars 2005
Statut
Membre
Dernière intervention
20 juillet 2010

Merci pour cette source
c'est ce que je cherchais depuis longtemps
en fait c'est tout simple
moi je fais des boucles de plusieurs jours et cela me sert énormément
bucherb
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007

Voilà, là c'est logique ;-) lol
Nikoui
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
8
Tu as raison, je me suis mal exprimé. String n'est pas de type Value. Ce que je voulais dire, c'est que string est une chaîne immuable à longueur fixe, et que faire s1 = s2 ne modifie pas s1, mais créé une nouvelle string et l'affecte a s1 (ce qui prouve bien d'ailleur que string est une référence et pas une valeur ^^).
cs_Crazyht
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
4
Et pourtant Nikiou à raison (presque) d'ou l'implementation de StringBuilder.

En effet 1àms ce n'est pas important surtout q'un fait elle sont ajouter apres le temps d'execution réel puisque la différence des 2 date est pris au debut de la méthode. Le fait de mettre des metrique rallentis forcement l'execution du programme.

Sinon bonne source F___

@++
Hervé
bucherb
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007

Je ne suis pas d'accord Nikoui. String n'est pas un ValueType mais un Object
Nikoui
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
8
Ton code pourrait tenir en 3 lignes, en utilisant string.Format();

(dans ce cas, c'est anectotique, mais ca coute cher en ressource (temps & mémoire) de faire maString = maString + autreChose, car a chaque fois, ca crée une nouvelle string en mémoire avant de recopier dans la nouvelle (string est un type 'valeur'), donc à éviter pour manipuler les strings. Ne pas hésiter non plus à utiliser les StringBuilder pour manipuler les chaines)
cs_poppyto
Messages postés
540
Date d'inscription
dimanche 29 décembre 2002
Statut
Modérateur
Dernière intervention
13 mai 2011

Je te l'accorde, pour .net 1.1 il est plus simple de mettre en place ta méthode que d'utiliser les API. Mais pour le 2.0, il faut utiliser StopWatch !

...J'ai l'impression que ta source est plus faite pour mesurer des grosses performances minutes/heures/jours ? Dans ce cas là je suis ok même pour .net 2.0
cs_fabrice69
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4
Que tu ne l'utilises pas, soit, mais cette méthode a l'avantage de fonctionner et est extrèmement simple à mettre en place.
Dans un cas d'exécution extrèmement rapide il y sans doute mieu.
Dans mon cas, les 10 Millisecondes me vont très bien.

Pour ce qui est de la version de .NET, je suis en 1.1 et non en 2.0 (comme encore beaucoup de gens).

Cordialement
Romelard Fabrice
cs_poppyto
Messages postés
540
Date d'inscription
dimanche 29 décembre 2002
Statut
Modérateur
Dernière intervention
13 mai 2011

Malgré l'effort de commentaires, on n'utilise pas ta technique pour mesurer des performances car la résolution est trop importante (10ms)...On utilise des Timers "Multimedia", cf APIs QueryPerformanceCounter/QueryPerformanceFrequency ou alors System.Diagnostics.Stopwatch de .net 2.0