C#中如何获程序第一次运行的时间

C#中如何获程序第一次运行的时间,第1张

程序中获取当前时间:DateTimeNowToString()

简单的,在程序运行时直接获取当前时间可以理解为第一次运行时间

至于编译时候是不对注册表有任何修改的,运行时候也是。除非你运行的程序中有修改注册表的代码,运行时才会对注册表进行 *** 作。

clock()函数,计算代码消耗的cpu时间,一般用处不大

time()函数,获取系统时间,许多依赖于time()计算超时的程序,在修改系统时间后一般都不能正常运行。

因此本人推荐:

windows下:计算绝对时间QueryPerformanceCount/QueryPerformanceFrequency

cpu脉冲计数/ cpu频率,获得开机以来的秒数。

当然,这两个函数获得时间精度是很高的(us级别),只是我们一般用不到这么精确。

linux下:

#include <sys/sysinfoh>

调用sysinfo()获得系统启动以来经历的秒数时间。这个不属于高精度计时。

如果要进行高精度计时,高精度时间,C运行库的gettimeofday()(当然据我估计也是受到系统更改时间的影响)。

用绝对时间判断系统时间有没有被更改,用高精度时间精确计时,二者结合才是王道。

abstract class GetTime {

public final void getTime() {

long start = SystemcurrentTimeMillis();

runcode();

long end = SystemcurrentTimeMillis();

Systemoutprintln("运行时间:" + (end - start) + "毫秒");//应该是end - start

}

public abstract void runcode();

}

public class SubTime extends GetTime {//建立一个java文件为SubTimejava,SubTime为主类,加为public

public void runcode() {

for (int x = 0; x < 4000; x++) {

Systemoutprintln(x);

}

}

static public void main(String args[]) {//写一个主函数就好了

new SubTime()getTime();//建立对象调用getTime();

}

}

可以用eclipse运行

#include<timeh>

#include<stdioh>

int main(){

    time_t st_t=time(NULL),ed_t;

    //do something

    

    //finish 

    ed_t = time(NULL);

    printf("%lf\n",((double)(ed_t-st_t))/CLOCKS_PER_SEC);

}

但是注意,因为OS调度的原因,输出的时间是程序运行的时间,不等同于进程真正的执行时间,进程真正执行的时间用这个方法是获取不到的,要用其他方法。OJ的后台程序判断的是你进程的真正执行时间。一个稳定的系统上两个时间之间大概有一个比例的,例如我的机器上如果输出了8,那么可能可以通过OJ上时限为1s的题目。

linux下,如果你想获取进程的真正执行时间用time命令就可以了。可执行程序名为ao的话。

time ao

就可以看到

以上就是关于C#中如何获程序第一次运行的时间全部的内容,包括:C#中如何获程序第一次运行的时间、求C语言程序:如何获得一个程序运行的时间 最好带一段简单的代码 新人学不懂 呵呵 谢谢大家啦、JAVA 获取一段程序运行时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存