.net 怎么计算一个程序的运行时间

.net 怎么计算一个程序的运行时间,第1张

我自己的理解哈,我也是菜鸟。。。 Globalasax是全局应用程序类,就是来管理和控制程序的生命周期的

void Application_Start(object sender, EventArgs e)

{

// 在应用程序启动时运行的代码

//记录开始时间

}

void Application_End(object sender, EventArgs e)

{

// 在应用程序关闭时运行的代码

//计算结束时间和开始时间时间差,得出运行时间

}

你可以在开始时候记录时间,结束时候再记录时间,然后看时间两个时间差,或者其他逻辑,这就得你自己考虑了 手打求采纳

第一种方法利用SystemDateTimeNow

[csharp]

view

plaincopy

static

void

SubTest()

{

DateTime

beforDT

=

SystemDateTimeNow;

//耗时巨大的代码

DateTime

afterDT

=

SystemDateTimeNow;

TimeSpan

ts

=

afterDTSubtract(beforDT);

ConsoleWriteLine("DateTime总共花费{0}ms",

tsTotalMilliseconds);

}

第二种用Stopwatch类(SystemDiagnostics)

[csharp]

view

plaincopy

static

void

SubTest()

{

Stopwatch

sw

=

new

Stopwatch();

swStart();

//耗时巨大的代码

swStop();

TimeSpan

ts2

=

swElapsed;

ConsoleWriteLine("Stopwatch总共花费{0}ms",

ts2TotalMilliseconds);

}

第三种用API实现:

[csharp]

view

plaincopy

[SystemRuntimeInteropServicesDllImport("Kernel32dll")]

static

extern

bool

QueryPerformanceCounter(ref

long

count);

[SystemRuntimeInteropServicesDllImport("Kernel32dll")]

static

extern

bool

QueryPerformanceFrequency(ref

long

count);

static

void

SubTest()

{

long

count

=

0;

long

count1

=

0;

long

freq

=

0;

double

result

=

0;

QueryPerformanceFrequency(ref

freq);

QueryPerformanceCounter(ref

count);

//耗时巨大的代码

QueryPerformanceCounter(ref

count1);

count

=

count1

-

count;

result

=

(double)(count)

/

(double)freq;

ConsoleWriteLine("QueryPerformanceCounter耗时:

{0}

秒",

result);

}

如果要计算一段程序运行时间,可以在这段程序的第一句前添加语句“tic”,在该端程序后添加语句“t=toc”即可,那么返回值t即为该段程序所耗时间。

看下例:

a=[1:900000];

b=zeros(1,900000);

tic

for i=1:900000

b(i)=2a(i);

end

t=toc

a为一个递增数组,b是一个与a同大小的空数组。可能有人问,为什么要先创建一个空数组,原因是这样的,事先声明一个数组然后往里填数,这样比来一个数扩充一个数的位置要省时间的。

为了统计for循环的耗时,则在相应位置添加tic和toc语句即可。运行结果t= 00150,单位是秒。

用GetTickCout记录下当前时间

用CreateThread启动线程

用WaitForSingleObject(handle,INFINITE)等待线程退出

最后再用GetTickCout记录当前时间,与之前的保存的相减

得到的就是运行时间,毫秒数。

根据指令周期,51系列单片机指令周期是晶振周期的12倍,比如12M晶振,指令周期是1us,每条指令的指令周期是不一样的。如果是高级语言,就要看编译后的汇编程序了。如果是延时程序,纯粹的循环(像这样:while ( us -- ); ),比较简单,一般一个循环就是一个指令周期。

以上就是关于.net 怎么计算一个程序的运行时间全部的内容,包括:.net 怎么计算一个程序的运行时间、C# 计算程序运行时间、MAtlab程序执行时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10047788.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存