2015-07-09 7 views
1

Мне нужно знать, как долго (в среднем) требуется отправить одно сообщение в очередь, поэтому я отправил 1000, а затем разделил общее количество на 1000 т. в среднем.Как измерить среднее итерацию цикла while с секундомером

Однако это консольное приложение занимает около 5-10 минут, а в конце всего миллисекунды - очень странное число, например, 100 или 400. И деление всегда равно 0. Я буквально взял свой карманный компьютер, и приложение занимает между 5 до 10 минут

Что я делаю неправильно, чтобы измерить это?

static void Main(string[] args) 
     { 
      string queueConnectionString = CloudConfigurationManager.GetSetting("Microsoft.ServiceBus.ConnectionString"); 
      QueueClient queueClientEmpresa = QueueClient.CreateFromConnectionString(queueConnectionString, "CapatechSaasApp"); 

      try 
      { 
       Console.WriteLine("Testing sending millions of messages"); 
       int i = 0; 
       // Create new stopwatch 
       Stopwatch stopwatch = new Stopwatch(); 

       // Begin timing 
       stopwatch.Start(); 
       while (i < 1000) 
       { 
        Empresa empresa = new Empresa() 
        { 
         Nombre = "Empresa:" + i, 
         NIT = "xx", 
         NombreRepresentanteLegal = "xx", 
         TelefonoRepresentanteLegal = "xx", 
         NombreContacto = "x", 
         TelefonoContacto = "x" 
        }; 
        i++; 

        BrokeredMessage message = new BrokeredMessage(JsonConvert.SerializeObject(empresa)); 
        message.Properties.Add("Operation", "Add"); 
        message.Properties.Add("Tipo", "Empresa"); 
        queueClientEmpresa.Send(message); 

        //string connectionString = CloudConfigurationManager.GetSetting("Microsoft.ServiceBus.ConnectionString"); 
        //Console.WriteLine("Press key to continue"); 
        //Console.ReadKey(); 
        //ReceiveMessagesEmpresa(connectionString);     
       } 
       stopwatch.Stop(); 
       Console.WriteLine("Time elapsed milliseconds: {0}", stopwatch.Elapsed.Milliseconds.ToString()); 
       Console.WriteLine("Time elapsed milliseconds/1000: {0}", (stopwatch.Elapsed.Milliseconds/1000).ToString()); 
       Console.ReadKey(); 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 
     } 

http://screencast.com/t/fjcFRbf2jM

ответ

4

TimeSpan имеет различные свойства, и вы не используете правильный выбор :-)

MilliSeconds является миллисекунды частью всего промежутка времени.
TotalMilliSeconds - это все время, выраженное в миллисекундах.

Использование TotalMilliseconds.

P.S. Вы также можете использовать stopwatch.ElapsedMilliseconds, который идентичен.

+0

lol! :( спасибо большое –

+0

Привет @EstebanV, как ответ Амит дал вам соответствующие ваши потребности, разве вы не должны отмечать его как принятый ответ ...? – Shnugo

+0

да, но вам нужно подождать несколько минут, прежде чем вы сможете принять ответ так быстро –