鱼C论坛

 找回密码
 立即注册
查看: 578|回复: 5

关于time的问题(高悬赏)

[复制链接]
最佳答案
2 
发表于 2020-2-10 15:14:41 | 显示全部楼层 |阅读模式
60鱼币
请问如何将linux命令行中的time命令,用c++写成可在windows运行的文件
使得运行方法像在Linux上一样,在cmd中输入time 然后跟一个文件路径
我自己写的做不到像在Linux上那样使用,而且时间也一点都不准确,大文件有时候反而时间短。
求帮忙

  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <windows.h>

  4. int main()
  5. {
  6.     double time=0;  
  7.     double counts=0;  
  8.     LARGE_INTEGER nFreq;  
  9.     LARGE_INTEGER nBeginTime;  
  10.     LARGE_INTEGER nEndTime;  
  11.     QueryPerformanceFrequency(&nFreq);  
  12.     QueryPerformanceCounter(&nBeginTime);

  13.     WinExec("xxxxxx",SW_SHOW);

  14.     QueryPerformanceCounter(&nEndTime);  
  15.     time=(double)(nEndTime.QuadPart-nBeginTime.QuadPart)/(double)nFreq.QuadPart;
  16.     std::cout<<"运行时间:"<<time*1000<<"ms";
  17.     return 0;
  18. }
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1 
发表于 2020-2-10 22:35:14 | 显示全部楼层
本帖最后由 sonicss 于 2020-2-11 10:44 编辑

QueryPerformanceCounter已经是Windows下的精确计时函数了,没有比这个更精确的了,我以前做的一个10us左右延时的,就是用的这个函数,但该函数还是会受到windows内核任务调度的影响,会有些偏差。

之前我的延时函数(用的C++ Builder):

  1. void delay(__int64 delaytime)
  2. {
  3.         __int64 l1 = 0, l2 = 0;
  4.         QueryPerformanceCounter((LARGE_INTEGER *)&l2);
  5.         while((l1 - l2) < delaytime)
  6.         {
  7.                 QueryPerformanceCounter((LARGE_INTEGER *)&l1);
  8.         }
  9. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2020-2-11 04:02:42 | 显示全部楼层
不知道我的回答是不是你想要的答案。如果你想直接在运行窗口输入time 然后就直接运行你的程序   你可以添加系统变量
此电脑->右击->属性->高级系统设置->环境变量->双击path->新建】 然后粘贴你程序的路径 。  以后你就可以在运行窗口哪里输入 你的程序名 系统会自动运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
2 
 楼主| 发表于 2020-2-13 19:13:07 | 显示全部楼层
sonicss 发表于 2020-2-10 22:35
QueryPerformanceCounter已经是Windows下的精确计时函数了,没有比这个更精确的了,我以前做的一个10us左右 ...

可我怎么添加代码呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
2 
 楼主| 发表于 2020-2-13 19:13:38 | 显示全部楼层
学渣班班长 发表于 2020-2-11 04:02
不知道我的回答是不是你想要的答案。如果你想直接在运行窗口输入time 然后就直接运行你的程序   你可以添加 ...

谢谢,但是怎么在后面跟一个程序路径并计算时间
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1 
发表于 2020-2-14 00:43:22 | 显示全部楼层
晴初back 发表于 2020-2-13 19:13
可我怎么添加代码呢

使用外部调用就行了,正如你程序里那样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2020-9-21 18:28

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表