C# - récupération du temps d'exécution d'une fonction ou d'une étape

Soyez le premier à donner votre avis sur cette source.

Snippet vu 25 602 fois - Téléchargée 29 fois

Contenu du snippet

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 / Exemple :


/// <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

A voir également

Ajouter un commentaire

Commentaires

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
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
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
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 ^^).
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
5
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é
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
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.