ITPub博客

首页 > 数据库 > Oracle > [20210410]关于time命令的解析.txt

[20210410]关于time命令的解析.txt

原创 Oracle 作者:lfree 时间:2021-04-12 08:40:53 0 删除 编辑

[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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7969578