关于time的问题(高悬赏)
请问如何将linux命令行中的time命令,用c++写成可在windows运行的文件使得运行方法像在Linux上一样,在cmd中输入time 然后跟一个文件路径
我自己写的做不到像在Linux上那样使用,而且时间也一点都不准确,大文件有时候反而时间短。
求帮忙
#include <iostream>
#include <stdlib.h>
#include <windows.h>
int main()
{
double time=0;
double counts=0;
LARGE_INTEGER nFreq;
LARGE_INTEGER nBeginTime;
LARGE_INTEGER nEndTime;
QueryPerformanceFrequency(&nFreq);
QueryPerformanceCounter(&nBeginTime);
WinExec("xxxxxx",SW_SHOW);
QueryPerformanceCounter(&nEndTime);
time=(double)(nEndTime.QuadPart-nBeginTime.QuadPart)/(double)nFreq.QuadPart;
std::cout<<"运行时间:"<<time*1000<<"ms";
return 0;
} 本帖最后由 sonicss 于 2020-2-11 10:44 编辑
QueryPerformanceCounter已经是Windows下的精确计时函数了,没有比这个更精确的了,我以前做的一个10us左右延时的,就是用的这个函数,但该函数还是会受到windows内核任务调度的影响,会有些偏差。
之前我的延时函数(用的C++ Builder):
void delay(__int64 delaytime)
{
__int64 l1 = 0, l2 = 0;
QueryPerformanceCounter((LARGE_INTEGER *)&l2);
while((l1 - l2) < delaytime)
{
QueryPerformanceCounter((LARGE_INTEGER *)&l1);
}
} 不知道我的回答是不是你想要的答案。如果你想直接在运行窗口输入time 然后就直接运行你的程序 你可以添加系统变量
【此电脑->右击->属性->高级系统设置->环境变量->双击path->新建】 然后粘贴你程序的路径 。以后你就可以在运行窗口哪里输入 你的程序名 系统会自动运行 sonicss 发表于 2020-2-10 22:35
QueryPerformanceCounter已经是Windows下的精确计时函数了,没有比这个更精确的了,我以前做的一个10us左右 ...
可我怎么添加代码呢 学渣班班长 发表于 2020-2-11 04:02
不知道我的回答是不是你想要的答案。如果你想直接在运行窗口输入time 然后就直接运行你的程序 你可以添加 ...
谢谢,但是怎么在后面跟一个程序路径并计算时间 晴初back 发表于 2020-2-13 19:13
可我怎么添加代码呢
使用外部调用就行了,正如你程序里那样
页:
[1]