我只是测量一组goroutine的执行时间。这意味着:
我开始测量,然后启动20个goroutine,并在完成后立即停止测量。我将这个过程重复4次,然后比较4次执行时间。
有时,这些执行时间明显不同:
20个goroutine的第一次运行:1.2毫秒
20个goroutine的第二次运行:1.9毫秒
20个goroutine的第3次运行:1.4毫秒
20个例行程序中的第4次运行:17.0毫秒!
为什么有时有时会有如此大的差异?有什么办法可以避免吗?
答案 0 :(得分:0)
为什么有时有时会有如此大的差异?
执行时间总是无法预测的,正如您对问题(CPU,磁盘负载,内存等)的评论中所提到的那样。
有什么办法可以避免吗?
有一种方法可以使您的测量更加有用。 Go有一个内置的基准测试工具(这里是guide,介绍如何正确使用它)。该工具仅运行您的代码足够的时间来确定确定性的执行时间。
除了显示代码的平均执行时间外,它还可以显示有用的内存信息。