Время провожу бегом по программе - PullRequest
7 голосов
/ 20 октября 2011

Как печатать в текстовом поле или на выходе время, которое программа тратит на выполнение?

Я хочу, чтобы оно отображалось в цикле for, чтобы узнать, сколько времени требуется каждому циклу for.

Ответы [ 5 ]

17 голосов
/ 20 октября 2011

Вы можете попробовать:

DateTime dt = DateTime.Now;
for (.......)
{
}
TimeSpan ts = DateTime.Now - dt;
textbox1.Text = ts.TotalMilliseconds.ToString();

или (в соответствии с MSDN ), если вам нужно лучшее разрешение

Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
for (.......)
{
}
stopWatch.Stop();
textbox1.Text = stopWatch.ElapsedMilliseconds.ToString();
13 голосов
/ 20 октября 2011
var watch = System.Diagnostics.Stopwatch.StartNew();

for()
{
 // ..
}

watch.Stop();

// Format 00:00:02.0001008
string elapsed = watch.Elapsed.ToString();     

// Milliseconds like 2000 for 2 seconds
string elapsedMs = watch.ElapsedMilliseconds.ToString(); 

System.Diagnostics.Debug.WriteLine(elapsed);
0 голосов
/ 20 октября 2011

Добавьте эти две строки - между вашим циклом For или между кодом, в котором вы хотите проверить скорость функции.

 Debug.WriteLine(DateTime.Now.ToLongTimeString());

  --your code

 Debug.WriteLine(DateTime.Now.ToLongTimeString());
0 голосов
/ 20 октября 2011

Вы можете сохранить текущий DateTime при запуске приложения, а затем создать таймер, который срабатывает каждую секунду. Когда он срабатывает, вы получаете текущий DateTime, вычтите их, чтобы получить TimeSpan, и используйте его для заполнения текстового поля.

0 голосов
/ 20 октября 2011

как то так:?

DateTime start = DateTime.UtcNow;

//... processing ...

DateTime end = DateTime.UtcNow;

Syste.Diagnostics.Debug.WriteLine((end - start).ToString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...