【发布时间】:2019-03-10 11:17:03
【问题描述】:
我只是在测量一组 goroutine 的执行时间。这意味着:
我开始测量,然后启动 20 个 goroutine,并在它们完成后立即停止测量。我重复该过程 4 次,然后比较 4 次执行时间。
有时,这些执行时间差异很大:
20 个 goroutine 的第一次运行:1.2 毫秒
20 个 goroutine 的第二次运行:1.9 毫秒
20 个 goroutine 的第 3 次运行:1.4 毫秒
20 个 goroutine 的第 4 次运行:17.0 毫秒!
为什么有时差异如此之大?有什么办法可以避免吗?
【问题讨论】:
-
4 不是一个有意义的样本量。您应该运行这样的测试数千次才能获得有意义的结果。
-
至于差异的原因:任何数量的原因。在缓慢运行时,可能正在后台运行某些东西,恰好需要 CPU、磁盘或其他共享资源。
标签: go runtime execution goroutine