猿问

为什么 Goroutines 的执行时间相差很大?

我只是在测量一组 goroutine 的执行时间。这意味着:

我开始测量,然后启动 20 个 goroutines 并在它们完成后立即停止测量。我重复该过程 4 次,然后比较 4 次执行时间。

有时,这些执行时间会有很大差异:

20 个协程的第一次运行:1.2 毫秒
20 个协程的第二次运行:1.9 毫秒
20 个协程的第三次运行:1.4 毫秒
20 个协程的第四次运行:17.0 毫秒!

为什么有时差异如此显着?有什么办法可以避免吗?


汪汪一只猫
浏览 99回答 1
1回答

绝地无双

为什么有时差异如此显着?执行时间在某些时候总是不可预测的,如提到的(CPU、磁盘负载、内存等)有什么办法可以避免吗?有一种方法可以使您的测量更有用。Go 有一个内置的基准测试工具。该工具运行您的代码的次数刚好足以确定某种确定性的执行时间。除了显示代码的平均执行时间外,它还可以显示有用的内存信息。
随时随地看视频慕课网APP

相关分类

Go
我要回答