2011-05-31 114 views
2

在posix上,可以使用timespec来计算准确的时间长度(如秒和毫秒)。不幸的是,我需要使用Visual Studio编译器迁移到Windows。 VS time.h库没有声明timespec,所以我正在寻找其他选项。尽管我不能检查时钟计数的毫秒数是多么精确,但可以使用时钟和time_t进行搜索。timespec在Windows编译器上

你在做什么/用于计算操作中的时间流逝(如果可能,使用标准C++库)?

回答

2

功能GetTickCount通常用于此。

另外一个类似的线程:C++ timing, milliseconds since last whole second

+0

有没有办法使用标准的C++库。这将是一个奖金。我忘了提及,以及 – PLS 2011-05-31 14:25:52

+0

检查此线程,它包含一个答案:http://stackoverflow.com/questions/117346/c-timing-milliseconds-since-last-whole-second – Grim 2011-05-31 14:28:23

+0

谢谢@Grim。它看出这不是便携式 – PLS 2011-05-31 14:33:15

2

取决于你想要什么样的准确性,我的理解是,时钟和time_t的不是精确到毫秒级。同样,GetTickCount()也是常用的(MS文档说精确到10-15ms),但对于许多目的来说不够精确。

我使用QueryPerformanceFrequencyQueryPerformanceCounter进行准确的性能时序测量。

+0

'time_t'精确到一秒,因为它是一个表示秒的整数类型;亚秒级精度在数学上不可能。 – 2011-05-31 14:30:19

+0

我的错误 - 误读文档 - 发布编辑 – Elemental 2011-05-31 15:17:49

+0

+1:QPF/QPC是要走的路。 – Puppy 2011-05-31 15:23:43