我目前正在尝试减少kmeans程序的运行时间,但是,即使我没有更改任何代码,每次运行“ time ./a.out”命令时,终端也会给我一个不同的答案。有谁知道为什么会这样吗?
real 0m0.100s
user 0m0.082s
sys 0m0.009s
bash-4.1$ time ./a.out
real 0m0.114s
user 0m0.084s
sys 0m0.006s
bash-4.1$ time ./a.out
real 0m0.102s
user 0m0.087s
sys 0m0.005s
bash-4.1$ time ./a.out
real 0m0.099s
user 0m0.082s
sys 0m0.008s
bash-4.1$ time ./a.out
real 0m0.101s
user 0m0.083s
sys 0m0.006s
这是连续运行相同命令之后的结果。
最佳答案
在现代系统上,许多进程并行运行(或更好的准并行运行)。这意味着系统在所有进程之间切换。注意:一旦一个过程完成,它就不会切换到下一个过程。那意味着进程将不得不等待,被阻塞。取而代之的是,每个过程有时会花费一些时间,直到完成为止。
进程越多,系统的总速度就越慢,以绝对持续时间衡量时,单个进程的速度就越慢。那就是你所看到的。
典型的策略称为“循环”。您可能想用谷歌搜索该术语以了解有关此主题的更多信息。
关于linux - 为什么每次在同一程序上运行“time./a.out”时都会收到不同的运行时?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31114922/