getCPUTime只返回两个值(0或15625000000) - 这是正确的吗?

时间:2013-11-27 22:41:12

标签: windows haskell time

它似乎总是返回015625000000

import System.CPUTime

main  =  do         
    print =<< getCPUTime
    getLine
    print =<< getCPUTime
    getLine
    return ()

执行

>>time.exe
15625000000

15625000000


>>time.exe
0

0


>>time.exe
0

15625000000


>>time.exe
0

0

我在Windows上,我认为这是一个平台相关。

2 个答案:

答案 0 :(得分:4)

来自hoogle

getCPUTime :: IO Integer

base System.CPUTime

计算getCPUTime返回当前程序使用的皮秒数。此结果的精度取决于实现。

可能是windows没有准确的实现并且返回0而不是皮秒数,请注意我在linux或osx上没有看到这种行为。

答案 1 :(得分:3)

getCPUTime返回进程使用的CPU时间。由于你的过程实际上什么也没做,它总是返回0或下一个最接近它的东西(在你的平台中似乎是15625000000)。请注意,等待输入阻止进程的时间不算作进程的CPU时间。