C#测试程序运行时间
2015-10-25 16:09
489 查看
一、用C#自带的StopWatch函数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace StopWatch
{
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
//这里填写要执行的代码
sw.Stop();
Console.WriteLine("总运行时间:" + sw.Elapsed);
Console.WriteLine("测量实例得出的总运行时间(毫秒为单位):" + sw.ElapsedMilliseconds);
Console.WriteLine("总运行时间(计时器刻度标识):" + sw.ElapsedTicks);
Console.WriteLine("计时器是否运行:" + sw.IsRunning.ToString());
}
}
}
运行结果如下:
总运行时间:00:00:00.0000013
测量实例得出的程序运行时间(毫秒为单位):0
总运行时间(计时器刻度标识):5
计时器是否运行:False
二、用API函数QueryPerformanceFrequency
using System;
using System.Threading;
class Class1
{
[System.Runtime.InteropServices.DllImport("Kernel32.dll")]
static extern bool QueryPerformanceCounter(ref long count);
[System.Runtime.InteropServices.DllImport("Kernel32.dll")]
static extern bool QueryPerformanceFrequency(ref long count);
[STAThread]
static void Main(string[] args)
{
long count = 0;
long count1 = 0;
long freq = 0;
double result = 0;
QueryPerformanceFrequency(ref freq);
QueryPerformanceCounter(ref count);
//需要测试的模块
int heisetoufa;
for (heisetoufa = 1; heisetoufa < 10000; heisetoufa++)
{
Console.WriteLine("第" + heisetoufa + "行");
if (heisetoufa == 5000)
{
Thread.Sleep(10000);
}
}
//需要测试的模块
QueryPerformanceCounter(ref count1);
count = count1 - count;
result = (double)(count) / (double)freq;
Console.WriteLine("耗时: {0} 秒", result);
Console.ReadLine();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace StopWatch
{
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
//这里填写要执行的代码
sw.Stop();
Console.WriteLine("总运行时间:" + sw.Elapsed);
Console.WriteLine("测量实例得出的总运行时间(毫秒为单位):" + sw.ElapsedMilliseconds);
Console.WriteLine("总运行时间(计时器刻度标识):" + sw.ElapsedTicks);
Console.WriteLine("计时器是否运行:" + sw.IsRunning.ToString());
}
}
}
运行结果如下:
总运行时间:00:00:00.0000013
测量实例得出的程序运行时间(毫秒为单位):0
总运行时间(计时器刻度标识):5
计时器是否运行:False
二、用API函数QueryPerformanceFrequency
using System;
using System.Threading;
class Class1
{
[System.Runtime.InteropServices.DllImport("Kernel32.dll")]
static extern bool QueryPerformanceCounter(ref long count);
[System.Runtime.InteropServices.DllImport("Kernel32.dll")]
static extern bool QueryPerformanceFrequency(ref long count);
[STAThread]
static void Main(string[] args)
{
long count = 0;
long count1 = 0;
long freq = 0;
double result = 0;
QueryPerformanceFrequency(ref freq);
QueryPerformanceCounter(ref count);
//需要测试的模块
int heisetoufa;
for (heisetoufa = 1; heisetoufa < 10000; heisetoufa++)
{
Console.WriteLine("第" + heisetoufa + "行");
if (heisetoufa == 5000)
{
Thread.Sleep(10000);
}
}
//需要测试的模块
QueryPerformanceCounter(ref count1);
count = count1 - count;
result = (double)(count) / (double)freq;
Console.WriteLine("耗时: {0} 秒", result);
Console.ReadLine();
}
}
相关文章推荐
- 第1篇 C#语言基本语句和语法
- Dotnetbar Winform 属性备忘
- C# 如何关联键盘按钮 (KeyChar/KeyCode值 KeyPress/KeyDown事件 区别)
- C#调用win32 api程序实例
- C# Properties.Settings.Default
- (原创)c#学习笔记05--变量的更多内容01--类型转换03--使用Convert命令进行显式转焕
- (原创)c#学习笔记05--变量的更多内容01--类型转换02--显示转换
- 【C#】基础名词解释
- (原创)c#学习笔记05--变量的更多内容01--类型转换01--隐式转换
- C# 常用接口学习 IEnumerable<T>
- C# CreateProcess的测试
- C#操作字符串方法总结<转>
- C#DataGridView中的常用技巧
- [cb] C# 事件编程
- C#中精确计时的一点收获
- 妥协与取舍,解构C#中的小数运算
- 【C#】.NET的相关概念
- 关于委托与自定义事件EventArgs浅谈
- C# 操作ini文件
- C# 闭包问题