首页 > 数据库 > Oracle > [20210410]关于time命令的解析.txt
[20210410]关于time命令的解析.txt
--//在 Linux 下,可以通过 time 命令,很容易获取程序的运行时间:
$ time echo 2^1000000 | bc > /dev/null
real 0m4.117s
user 0m4.105s
sys 0m0.004s
--//可以看到,real = user+sys,非常接近。
$ time sleep 4
real 0m4.002s
user 0m0.000s
sys 0m0.002s
--//先来解释下这三个参数的含义:
--//real:表示的钟表时间,也就是从程序执行到结束花费的时间;
--//user:表示运行期间,cpu 在用户空间所消耗的时间;
--//sys:表示运行期间,cpu 在内核空间所消耗的时间;
--//对于运行sleep 4,基本不消耗CPU时间。这样两者差别就很大。而前者基本属于CPU的密集运算。real就非常接近user+sys。
--//会遇到 real 远远小于 user + sys 的场景吗?实际上并行计算就可能出现这样的情况。例子如下:
$ time seq 3 | xargs -IQ -P 3 bash -c "echo 2^1000000 | bc > /dev/null "
real 0m4.655s
user 0m12.978s
sys 0m0.018s
--//在我的测试环境echo 2^1000000 | bc > /dev/null大约需要4秒多一点,如果有新设备,我经常使用这样简单的方式测试CPU计算性
--//能。而现在打开3个并行,你可以发现real 需要4.X秒。而user需要12.XXX秒完成。这样就出现 read远远小于user+sys的情况。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2767491/ ,如需转载,请注明出处,否则将追究法律责任。