[实践Ok]Linux内建命令和外部命令的判断以及帮助命令——pwd,以及这俩的性能对比。

jackxiang 2019-4-4 17:24 | |
help [-s] [pattern]
              显示关于内建命令的有用的信息。如果指定了  pattern  (模式),  help  给出关于所有匹配  pattern  的命令的详细帮助;否则所有内建命令的帮助和   shell
              控制结构将被打印出来。 选项 -s 限制信息显示为简短的用法概要。 返回 0,除非没有匹配 pattern 的命令。

在shell中,通过awk,sed,expr 等都可以实现,字符串上述操作。下面我们进行性能比较。

[chengmo@localhost ~]$ test='c:/windows/boot.ini'                      
[chengmo@localhost ~]$ time for i in $(seq 10000);do a=${#test};done;          

real    0m0.173s
user    0m0.139s
sys     0m0.004s

[chengmo@localhost ~]$ time for i in $(seq 10000);do a=$(expr length $test);done;      

real    0m9.734s
user    0m1.628s



速度相差上百倍,调用外部命令处理,与内置操作符性能相差非常大。在shell编程中,尽量用内置操作符或者函数完成。使用awk,sed类似会出现这样结果。


time for i in $(seq 10000);do a=${#test};done;  

real    0m0.751s
user    0m0.747s
sys     0m0.004s

time for i in $(seq 10000);do a=$(expr length $test);done;      

real    0m13.291s
user    0m4.898s
sys     0m9.004s

$type echo
echo is a shell builtin
$type expr
expr is /usr/bin/expr


来自:http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/10148/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2019-4-6 20:04
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]