Y a-t-il une classe en C# qui peut me donner des ticks d'horloge, des secondes consommées par une méthode? Je suppose que j'ai deux enveloppes cette fonctionnalité autour de la fonction de temps les tiques et les secondes prises.Toute classe en C# pouvant me dire tick tick, secondes consommées par une fonction
Répondre
Vous pouvez utiliser la classe System.Diagnostics.Stopwatch
.
Stopwatch sw = new Stopwatch();
sw.Start();
// Your method call here...
sw.Stop();
// Get the elapsed time
TimeSpan elapsed = sw.Elapsed;
A partir de là, vous pouvez utiliser les TimeSpan.Ticks
ou les propriétés TimeSpan.TotalSeconds
pour déterminer les tiques écoulées ou secondes écoulées, respectivement. Si vous le souhaitez, vous pouvez utiliser une méthode suivant les lignes suivantes pour "envelopper" cette fonctionnalité autour d'une fonction, comme vous l'avez mentionné (juste une idée, vous voudrez probablement modifier ce code en fonction de vos objectifs spécifiques - en passant des arguments, etc.):
public static T ExecuteWithElapsedTime<T>(Func<T> function, out TimeSpan elapsedTime)
{
T rval;
Stopwatch sw = new Stopwatch();
sw.Start();
rval = function();
sw.Stop();
elapsedTime = sw.Elapsed;
return rval;
}
Et vous pouvez l'appeler comme celui-ci (où myFunc
est une fonction qui renvoie un int
):
TimeSpan elapsed;
int result = ExecuteWithElapsedTime(myFunc, out elapsed);
pourrait être plus simple que de même pas déranger avec une méthode comme t son, et juste mettre le code Stopwatch en ligne avec votre appel de méthode.
Il y a le high resolution timer ...
En outre, un IIRC TimeSpan peut vous donner une mesure dans les tiques arrière.
Utilisation:
using System.Diagnostics;
...
var sw = Stopwatch.StartNew();
DoYaThing();
Console.WriteLine("{0} Elapsed", sw.Elapsed);
Vous pouvez consulter la classe [System.TimeSpan]
et WRAP autour de votre méthode.
Merci mon pote, vous êtes l'homme! –
Vous l'avez eu :) Je suis heureux d'avoir pu aider. – Donut