Laden...

Ausführungszeit messen

Erstellt von rockthecity vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.659 Views
R
rockthecity Themenstarter:in
297 Beiträge seit 2005
vor 18 Jahren
Ausführungszeit messen

Weiss jemand wie man die Ausführungszeit messen kann für z.B.


			
			//100 Dateien anlegen
			for (int j = 0; j <=100; j++)
			{
				label7.Text="Datei:" + userData + "\\" + j + ".txt";
				File.Create(userData + "\\" + j + ".txt");
				progressBar1.Increment(j);


Urlaubsorte suchen: http://www.tripedio.de

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo rockthecity,

kommt auf die Genauigkeit an. Eine Möglichkeit ist: DateTime.Now

herbivore

R
rockthecity Themenstarter:in
297 Beiträge seit 2005
vor 18 Jahren
Und wenn genauer

Da ich mit verschiedenen Befehlen etwas herumspiele würde ich gerne mal geringste Unterschiede feststellen können ?

Urlaubsorte suchen: http://www.tripedio.de

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo rockthecity,

die Doku sagt:

Zeitwerte werden in Einheiten von 100 Nanosekunden gemessen, die als Ticks bezeichnet werden

herbivore

S
8.746 Beiträge seit 2005
vor 18 Jahren

Für solche Geschichten gibt es fertige Programme, die heissen "Profiler". Dazu brauchst du auch nicht irgendwelche Zeitmessungssatement einzubauen.

Aber: Die Profiler selbst verlangsamen die Programmausführung selbst. Relative Aussagen sind trotzdem möglich.

Beipsiel:

Methode A mit "händischer Zeitmessung": 5 sec
Methode B mit "händischer Zeitmessung": 10 sec

Methode A mit Profiler: 10 sec
Methode B mit Profiler: 20 sec

Ein Profiler misst also nicht die "echte" Zeit, sondern gibt dir ein Gefühl für:

* wo verbrät mein Programm die Rechenzeit
* um wieviel ist Methode A langsamer als B
* wie oft wurde A aufgerufen, wieviel Zeit verbrachte die Anwendung insgesamt dort

Ein Profiler ist das richtige Werkzeug, wenn du das Gefühl hast, dass deine Anwendung nicht so schnell ist, wie sie "sein sollte".

Absolute Zeitaussagen zu ermitteln macht nur dann Sinn, wenn man z.B. garantieren muss, dass ein Programm auf einem 3 Ghz-System in mindestens 3 Sekunden auf eine Aktion antwortet.

Gibt diverse Freeware-Profiler.

X
2.051 Beiträge seit 2004
vor 18 Jahren

apropo Freeware-Profiler: FxCop: Codeanalysetool

1.271 Beiträge seit 2005
vor 18 Jahren

Ich mach immer am Anfang des Aufrufs ein DateTime.Now in eine Variable und am Ende eins und geb dann die Differenz in einer MessageBox aus. Funktioniert sehr gut. Kann zwar sein, dass das die Ausführung beeinträchtigt, gibt einem aber, wie ein Profiler, das "Gefühl" wos harkt.

A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.

29 Beiträge seit 2005
vor 18 Jahren

Ich empfehle für solche Messungen grundsätzlich nur die PerformanceCounter Klassen!