如何用秒表测量while循环迭代的平均值
本文关键字:迭代 平均值 循环 while 何用秒 测量 | 更新日期: 2023-09-27 18:01:52
我需要知道一条消息发送到队列需要多长时间(平均),所以我发送了1000条消息,然后将总数除以1000来获得平均值。
然而,这个控制台应用程序大约需要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
TimeSpan
有各种属性,而您没有使用正确的属性:-)
MilliSeconds
是整个时间跨度的毫秒部分。TotalMilliSeconds
为整个时间,单位为毫秒。
使用TotalMilliseconds
注:您也可以使用stopwatch.ElapsedMilliseconds
,这是相同的