为什么goroutine的执行时间有显著差异?
我只是在测量一组goroutine的执行时间。这意味着: 我开始测量,然后开始20个goroutines,一旦完成就停止测量。我重复这个过程4次,然后比较4次执行时间 有时,这些执行时间差异很大: 20个goroutines中的第一次运行:1.2毫秒 20个goroutines的第二次运行:1.9毫秒 20个goroutines中的第3次运行:1.4毫秒 第四轮20个goroutines:17.0毫秒 为什么有时差异如此显著?有什么办法可以避免吗 为什么有时差异如此显著 执行时间在某种程度上总是不可预测的,正如在对CPU、磁盘负载、内存等问题的评论中提到的 有什么办法可以避免吗 有一种方法可以让你的测量更有用。Go有一个内置的基准测试工具,下面是一个关于如何正确使用它的示例。此工具运行代码的次数刚好足以确定某种程度上确定的执行时间为什么goroutine的执行时间有显著差异?,go,runtime,execution,goroutine,Go,Runtime,Execution,Goroutine,我只是在测量一组goroutine的执行时间。这意味着: 我开始测量,然后开始20个goroutines,一旦完成就停止测量。我重复这个过程4次,然后比较4次执行时间 有时,这些执行时间差异很大: 20个goroutines中的第一次运行:1.2毫秒 20个goroutines的第二次运行:1.9毫秒 20个goroutines中的第3次运行:1.4毫秒 第四轮20个goroutines:17.0毫秒 为什么有时差异如此显著?有什么办法可以避免吗 为什么有时差异如此显著 执行时间在某种程度上总是
除了显示代码的平均执行时间外,它还可以显示有用的内存信息 4不是一个有意义的样本量。为了得到一个有意义的结果,你应该运行数千次这样的测试。有些东西可能在后台运行,在慢运行时恰好需要CPU、磁盘或其他共享资源。