版本 2程序集 窗口程序集1
程序集变量 时
程序集变量 分
程序集变量 秒子程序 __启动窗口_创建完毕标签1标题 = “已运行:” + 到文本 (时) + “小时” + 到文本 (分) + “分钟” + 到文本 (秒) + “秒”子程序 _时钟1_周期事件秒 = 秒 + 1
如果真 (秒 = 60)
秒 = 0
分 = 分 + 1
如果真结束
如果真 (分 = 60)
分 = 0
时 = 时 + 1
如果真结束
标签1标题 = “已运行:” + 到文本 (时) + “小时” + 到文本 (分) + “分钟” + 到文本 (秒) + “秒”
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运行
clock()函数,计算代码消耗的cpu时间,一般用处不大
time()函数,获取系统时间,许多依赖于time()计算超时的程序,在修改系统时间后一般都不能正常运行。
因此本人推荐:
windows下:计算绝对时间QueryPerformanceCount/QueryPerformanceFrequency
cpu脉冲计数/ cpu频率,获得开机以来的秒数。
当然,这两个函数获得时间精度是很高的(us级别),只是我们一般用不到这么精确。
linux下:
#include <sys/sysinfoh>
调用sysinfo()获得系统启动以来经历的秒数时间。这个不属于高精度计时。
如果要进行高精度计时,高精度时间,C运行库的gettimeofday()(当然据我估计也是受到系统更改时间的影响)。
用绝对时间判断系统时间有没有被更改,用高精度时间精确计时,二者结合才是王道。
BOOL QueryPerformanceFrequency(LARGE_INTEGER lpFrequency);可以返回硬件支持的高精度计数器的频率。先调用QueryPerformanceFrequency()函数获得机器内部计时器的时钟频率。接着在需要严格计时的事件发生前和发生之后分别调用QueryPerformanceCounter(),利用两次获得的计数之差和时钟频率,就可以计算出事件经历的精确时间。
#include "stdafxh"#include <windowsh>
#include <timeh>
#include "processh"
#define random(x) (rand()%x)
int _tmain(int argc, _TCHAR argv[])
{
LARGE_INTEGER fre = { 0 }; //储存本机CPU时钟频率
LARGE_INTEGER startCount = { 0 };
LARGE_INTEGER endCount = { 0 };
QueryPerformanceFrequency(&fre);//获取本机cpu频率
//开始计时
QueryPerformanceCounter(&startCount);
//运算
for (int i = 0; i < 10000000; i++)
{
float fTem1 = random(100)random(1000)random(10000)random(100000);
}
//结束计时
QueryPerformanceCounter(&endCount);
//计算时间差
double dTimeTake = ((double)endCountQuadPart - (double)startCountQuadPart) / (double)freQuadPart;
printf("用时%f\n", dTimeTake);
system("pause");
return 0;
}
#include <stdioh>
#include <timeh>
#define N 10000 /这个数字可以自己改,如果时间太长结果不出来你就改小点/
void f()
{
int i, j, k;
for ( i = 0; i < N; ++i )
for ( j = 0; j < N; ++j )
for ( k = 0; k < N; ++k )
;
}
int main()
{
clock_t begin, duration;
begin = clock();
f();
duration = clock() - begin;
printf( "函数f()的运行时间大约为:%dms\n", duration1000/CLOCKS_PER_SEC );
}
以上就是关于易语言 取程序运行时间全部的内容,包括:易语言 取程序运行时间、JAVA 获取一段程序运行时间、求C语言程序:如何获得一个程序运行的时间 最好带一段简单的代码 新人学不懂 呵呵 谢谢大家啦等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)