Вычислить время выполнения одной или нескольких строк кода - PullRequest
3 голосов
/ 21 июля 2011

Есть ли способ (созданный в C # классом), который позволил бы мне вычислить время, необходимое для выполнения некоторых строк в моей программе.

Пример:

try
{
  string connectionString = GetConnectionString();
  using (SqlConnection conn = new SqlConnection(connectionString))
  {
    conn.Open();

    ***// start counting: 
    // time = 0*** 

    using (SqlCommand cmd = new SqlCommand(
     “SELECT * FROM Books”, conn))
      using (SqlDataReader reader = cmd.ExecuteReader())
       {
         while (reader.Read())
          {
             Console.WriteLine(“{0}\t{1}\t{2}”, 
             reader.GetInt32(0),
             reader.GetString(1), 
             reader.GetInt32(2));
          }

   ***// end counting 
   // time = 10 sec***
  }
} 

Ответы [ 4 ]

8 голосов
/ 21 июля 2011

Один из вариантов - использовать встроенный класс Stopwatch:

var sw = Stopwatch.StartNew();

// do something

sw.Stop();
Console.WriteLine("Time elapsed: {0} milliseconds", sw.ElapsedMilliseconds);
2 голосов
/ 21 июля 2011

См. Класс System.Diagnostics.StopWatch , чтобы сделать это вручную или использовать profiler .

.
1 голос
/ 21 июля 2011
static TimeSpan Time(Action action) {
  var sw = StopWatch.StartNew();
  action();
  sw.Stop();
  return sw.Elapsed
}

Тогда вы можете просто сделать

var time = Time (() => {// MyCode here});

1 голос
/ 21 июля 2011

Посмотрите на System.Diagnostics.Stopwatch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...