begin process at 2012 02 11 11:29:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

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

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


 Information sur la source

Note :
7 / 10 - par 2 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Source .NET ( DotNet ) Classé sous :temps, exécution, timer Niveau :Débutant Date de création :17/01/2006 Vu :18 651

Auteur : fabrice69

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note


 Description

Après avoir chercher comment faire, je me suis inspiré de différentes idées trouvées pour créer cette fonction extrèmement simple que vous pouvez adapter et intégrer dans vos projet suivant votre besoin.

Source

  • /// <summary>
  • /// Retourne le temps passé depuis le temps de départ transmis en paramètre
  • /// </summary>
  • /// <param name="TempsDeDepart">Instant de Départ</param>
  • /// <returns>Retourne le temps en textuel</returns>
  • private string renvoieTempsDexecution(DateTime TempsDeDepart)
  • {
  • TimeSpan TempTempsExec = (DateTime.Now - TempsDeDepart);
  • string TempRetour = string.Empty;
  • TempRetour += RetournePlurielouSingulier(TempTempsExec.Days, "jour", ", ") ;
  • TempRetour += RetournePlurielouSingulier(TempTempsExec.Hours, "heure", ", ");
  • TempRetour += RetournePlurielouSingulier(TempTempsExec.Minutes, "minute", ", ");
  • TempRetour += RetournePlurielouSingulier(TempTempsExec.Seconds, "seconde", ", ");
  • TempRetour += RetournePlurielouSingulier(TempTempsExec.Milliseconds, "milliSeconde", "");
  • return TempRetour;
  • }
  • /// <summary>
  • /// Retourne la chaine avec pluriel ou singulier, si nul, ne renvoie rien
  • /// </summary>
  • /// <param name="Valeur">Valeur à tester</param>
  • /// <param name="mot">Mot à accorder</param>
  • /// <param name="separateur">séparateur à ajouter</param>
  • /// <returns>Chaine avec accord</returns>
  • private string RetournePlurielouSingulier(int Valeur, string mot, string separateur)
  • {
  • string tempretour = string.Empty;
  • if (Valeur > 0)
  • {
  • if (Valeur == 1)
  • {
  • tempretour = Valeur.ToString() +" "+ mot + separateur;
  • }
  • else
  • {
  • tempretour = Valeur.ToString() +" "+ mot +"s" + separateur;
  • }
  • }
  • return tempretour;
  • }
  • // ----------------------------------------------------------------
  • // Pour son utilisation :
  • // Déclaration de la variable au départ de votre fonction
  • DateTime InstantDepart = DateTime.Now;
  • // ...... Votre Code
  • string Texte = "Durée d'exécution : "+ renvoieTempsDexecution(InstantDepart);
/// <summary>
/// Retourne le temps passé depuis le temps de départ transmis en paramètre
/// </summary>
/// <param name="TempsDeDepart">Instant de Départ</param>
/// <returns>Retourne le temps en textuel</returns>
private string renvoieTempsDexecution(DateTime TempsDeDepart)
{
	TimeSpan TempTempsExec = (DateTime.Now - TempsDeDepart);
	string TempRetour = string.Empty;

	TempRetour += RetournePlurielouSingulier(TempTempsExec.Days, "jour", ", ") ;
	TempRetour += RetournePlurielouSingulier(TempTempsExec.Hours, "heure", ", ");
	TempRetour += RetournePlurielouSingulier(TempTempsExec.Minutes, "minute", ", ");
	TempRetour += RetournePlurielouSingulier(TempTempsExec.Seconds, "seconde", ", ");
	TempRetour += RetournePlurielouSingulier(TempTempsExec.Milliseconds, "milliSeconde", "");

	return TempRetour;
}


/// <summary>
/// Retourne la chaine avec pluriel ou singulier, si nul, ne renvoie rien
/// </summary>
/// <param name="Valeur">Valeur à tester</param>
/// <param name="mot">Mot à accorder</param>
/// <param name="separateur">séparateur à ajouter</param>
/// <returns>Chaine avec accord</returns>
private string RetournePlurielouSingulier(int Valeur, string mot, string separateur)
{
	string tempretour = string.Empty;
	if (Valeur > 0)
	{
		if (Valeur == 1)
		{
			tempretour = Valeur.ToString() +" "+ mot + separateur;
		}
		else
		{
			tempretour = Valeur.ToString() +" "+ mot +"s" + separateur;
		}
	}
	return tempretour;
}

// ----------------------------------------------------------------
// Pour son utilisation :

// Déclaration de la variable au départ de votre fonction
DateTime InstantDepart = DateTime.Now;

// ...... Votre Code

string Texte = "Durée d'exécution : "+ renvoieTempsDexecution(InstantDepart);


 Conclusion

Pour l'utiliser, il vous suffit alors d'afficher la variable de texte.

Bon Coding

Romelard Fabrice


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) C# - CONTROL END POINTS SQL SERVER 2005
Source avec Zip Source avec une capture Source .NET (Dotnet) C# - CHECK MODE COMPILATION
Source .NET (Dotnet) C# - CONNAÎTRE LE MODE DE COMPILATION UTILISÉ
Source .NET (Dotnet) C# - OBTENIR SI LE FICHIER EST EN UTF8 OU ANSI
Source .NET (Dotnet) C# - FONCTION PERMETTANT D'OBTENIR L'ENCODAGE D'UN FICHIER T...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) CALCUL DATES & JOURS FÉRIÉS par DCTC33
Source avec Zip Source avec une capture Source .NET (Dotnet) DIFFÉRENCE DE TEMPS, XML, POCKETPC / WINFORMS...... par Steph115
Source avec Zip Source avec une capture Source .NET (Dotnet) HORLOGE/ALARME NUMÉRIQUE par Bio3G
Source avec Zip Source avec une capture Source .NET (Dotnet) COMPTE À REBOURS par Azema
Source .NET (Dotnet) CLASSE DATE AVEC QUELQUES FONCTIONS par ricklekebekoi

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) PROJECTMANAGER par dodo7263
Source avec Zip Source .NET (Dotnet) THREADWORKER par krimog
Source avec Zip Source avec une capture Source .NET (Dotnet) QCM AVEC TIMER par zahenianis
Source avec Zip Source avec une capture Source .NET (Dotnet) EXEMPLE SIMPLE DE BALLE EN MOUVEMENT par lgauthier
Source avec Zip Source avec une capture Source .NET (Dotnet) COMPTE À REBOURS par Azema

Commentaires et avis

Commentaire de poppyto le 17/01/2006 19:25:41 administrateur CS

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

Commentaire de fabrice69 le 17/01/2006 20:21:25 administrateur CS

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

Commentaire de poppyto le 17/01/2006 20:28:19 administrateur CS

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

Commentaire de Nikoui le 18/01/2006 10:08:22

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)

Commentaire de bucherb le 18/01/2006 11:27:43

Je ne suis pas d'accord Nikoui. String n'est pas un ValueType mais un Object

Commentaire de Crazyht le 18/01/2006 12:08:13 administrateur CS

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é

Commentaire de Nikoui le 18/01/2006 12:12:10

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 ^^).

Commentaire de bucherb le 18/01/2006 14:44:43

Voilà, là c'est logique ;-) lol

Commentaire de fredatcs le 08/02/2009 16:49:53

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

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Temps d'exécution d'un programme [ par yassinchaouki ] Bonjour,est ce qu' il y a une fonction en C# qui calcule le temps d'ex&#233;cution d'un programme?merci d'avance.Cordialement. Temps processeur [ par T103 ] Bonsoir,Je voudrais recuperer le temps du processeur total, donc j'utilise un PerformanceCounter qeu voici :Je lai mi dans un timer mais mon label aff Simuler son propre temps et ses timer [ par suprascio ] Bonjour, Je suis en train de développer un simulateur de salle de marché et je dois pour cela simuler on propre temps (ne pas utiliser DateTime global temps d'exécution [ par hadhber ] j'ai remarqué que l'exécution d'une application dotnet est lente pour la première fois . Qui peut me repondre pourquoi? Temps d'exécution d'1 aspx : comment le calculer ? [ par v1nce ] Bonjour,J'ai des probl&#232;me de perf dans l'ex&#233;cution de mes scripts aspx sans que je sache si cela vient des scripts ou d'un probl&#232;me r&# Timer Thread ??? [ par Globinours ] Voil&#224; mon probl&#232;me en fait j'ai une RichTextBox et j'effectue une op&#233;ration assez longue sur l'&#233;venement OnSelectionChanged. Ce q erreur sur ExecuteScalar(dbCommandWrapper); [ par lamiruth ] Bonjour &#224; tous!svp au moment de l'ex&#233;cution de &nbsp;instruction MyString =(int) database.ExecuteScalar(dbCommandWrapper);dans une page web, Impression matricielle [ par hoymille ] Bonjour,Je voulais savoir comment peut on imprimer une ligne de temps en temps sans que la feuille ne sorte avant qu'elle ne soit remplie?En fait, c'e Tester si un processus est en cours d'exécution [ par AnnihilatorSupernova ] Bonjour !J'aimerais savoir comment faire pour tester si un processus est en cours d'ex&#233;cution. Je sais qu'on peut les lister et chercher le proce faire un temporisateur [ par emna_bz ] Bonjour a tous Je veux arreter l'execution d'une page aspx pendant 1secondes ,j'ai essay&#233; d'utiliser timer mais j'ai pas pu trouver un bon result


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,252 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales