我来为您讲解C#使用StopWatch获取程序毫秒级执行时间的方法:
什么是StopWatch类
StopWatch类是.NET Framework中的一个计时器类,可以用来精确地测量一段代码的执行时间。它使用了高精度计数器(比如CPU计时器)来测量时间,因此能够精确到毫秒、微秒和纳秒级别,比使用DateTime.Now等类更加准确。
如何使用StopWatch类
- 引用命名空间和实例化StopWatch对象
首先需要引用命名空间System.Diagnostics
,然后创建一个StopWatch对象:
using System.Diagnostics;
Stopwatch stopwatch = new Stopwatch();
- 计时开始和结束
在需要计时的代码段前后,调用Stopwatch对象的Start()和Stop()方法:
stopwatch.Start();
//需要计时的代码段
stopwatch.Stop();
- 获取计时结果
计时结束后,可以通过Stopwatch对象的Elapsed属性获取结果:
TimeSpan ts = stopwatch.Elapsed; //获取经过的时间
string result = string.Format("程序执行时间:{0}分{1}秒{2}毫秒", ts.Minutes, ts.Seconds, ts.Milliseconds);
Console.WriteLine(result);
示例一
下面是一个简单的示例程序,使用StopWatch对象测量一个循环的执行时间:
using System;
using System.Diagnostics;
namespace StopWatchExample
{
class Program
{
static void Main(string[] args)
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
for (int i = 0; i < 100000; i++)
{
//模拟一些耗时操作
int result = 0;
for (int j = 0; j < 1000; j++)
{
result += j;
}
}
stopwatch.Stop();
TimeSpan ts = stopwatch.Elapsed;
string result1 = string.Format("程序执行时间:{0}分{1}秒{2}毫秒", ts.Minutes, ts.Seconds, ts.Milliseconds);
Console.WriteLine(result1);
Console.ReadKey();
}
}
}
输出结果为:程序执行时间:0分0秒32毫秒
示例二
下面是另一个示例程序,使用StopWatch对象测量一个递归算法的执行时间:
using System;
using System.Diagnostics;
namespace StopWatchExample
{
class Program
{
static void Main(string[] args)
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
int result = Fibonacci(30);
stopwatch.Stop();
TimeSpan ts = stopwatch.Elapsed;
string result1 = string.Format("程序执行时间:{0}分{1}秒{2}毫秒", ts.Minutes, ts.Seconds, ts.Milliseconds);
Console.WriteLine(result1);
Console.ReadKey();
}
static int Fibonacci(int n)
{
if (n <= 1)
{
return n;
}
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
}
输出结果为:程序执行时间:0分0秒4417毫秒
这个示例中,程序执行了一个递归算法来计算斐波那契数列,由于这个算法的时间复杂度较高,程序的执行时间也比较长。但是通过使用Stopwatch对象,可以方便地测量出程序的执行时间。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#使用StopWatch获取程序毫秒级执行时间的方法 - Python技术站