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

cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011 - 17 janv. 2006 à 19:25
fredatcs Messages postés 14 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 20 juillet 2010 - 8 févr. 2009 à 16:49
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
8 févr. 2009 à 16:49
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
18 janv. 2006 à 14:44
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 13
18 janv. 2006 à 12:12
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 Membre Dernière intervention 21 août 2010 8
18 janv. 2006 à 12:08
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
18 janv. 2006 à 11:27
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 13
18 janv. 2006 à 10:08
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
17 janv. 2006 à 20:28
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 Membre Dernière intervention 11 décembre 2013 5
17 janv. 2006 à 20:21
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
17 janv. 2006 à 19:25
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
Rejoignez-nous