gpt4 book ai didi

走 - 时间 - 毫秒

转载 作者:IT王子 更新时间:2023-10-29 01:23:56 24 4
gpt4 key购买 nike

我需要以毫秒为单位的时间来处理大量事务,因此我想要正确且快速的东西。下面的工作会做得最好吗? :


iMilli := int((time.Nanoseconds() % 1e6) / 1e3)

TIA

最佳答案

编辑:自首次编写此答案以来,转义分析代码已添加到 Go 编译器中。这允许编译器在某些情况下避免不必要的分配,包括(可能)下面描述的情况。因此,对于最新的周刊,使用更直接的 time.Nanoseconds() 调用可能同样好。请进行您自己的分析。

大多数时候函数会导致堆分配(随后需要收集,导致应用程序暂停)。因此,如果您经常查找时间(听起来确实如此),则需要直接使用 syscall.Gettimeofday()(这是其他时间函数最终调用的函数)。有关详细信息,请参阅此处的讨论:

http://groups.google.com/group/golang-nuts/browse_thread/thread/f2209022f43efcca?pli=1

我使用的解决方案是预先分配一个 tv syscall.Timeval,每次通过我的内部循环我都这样做:

syscall.Gettimeofday(&tv)

然后您可以通过以下方式获取毫秒数:

(int64(tv.Sec)*1e3 + int64(tv.Usec)/1e3)

我发现这比调用 time.Nanoseconds() 或其他更高级别的时间函数之一要好得多。

关于走 - 时间 - 毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6161839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com