奇数秒表结果 Haskell

Odd stopWatch result in Haskell

clock 包包含 stopWatch 函数,returns TimeSpec 记录。它有一个包含两个字段的构造函数:sec(秒)和 nsec(纳秒)。但是,运行 这个命令给出了一个奇怪的结果:

TimeSpec {sec = 29, nsec = 656841598}

看起来 nsec 实际上不是指纳秒,因为 1 秒应该是 10^9 纳秒。这是库中的错误还是发生了其他事情?

secnsec字段显示的不是同一事物,不同单位表示,而是整个时间的部分。也就是说,{ sec = 1, nsec = 2 } 表示“1 秒和 2 纳秒”。

试试这个:

print $ fromNanoSecs 1234567890000

> TimeSpec {sec = 1234, nsec = 567890000}

TimeSpec分为两部分,一个秒计数器和一个纳秒计数器,用于秒的小数部分。如果您想要以纳秒为单位的总时间,请使用 toNanoSecs.