shell脚本优化原则(持续更新)
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-22
1、能用内建命令完成的功能尽量不要使用外部命令,使用外部命令会fork新的进程抢占cpu和内存资源.可通过type 命令查看命令是否为内建命令. 2、在脚本中若有代码段需要重用时,最好写成函数形式,可提高脚本执行效能,原因是它将命令放在内存里,这样会更有效率. 3、操作字符串时,能使用${}完成功能的尽量不要使用awk,sed等,原因类似第一条. 4、尽量少用“|”(管道),管道是很耗资源的.下面我们来做个测试. 向一个文件写入10000行随机数 1)使用管道: cat ceshi.sh #!/bin/bash for((i=0;i<=10000;i ));do echo $RANDOM |tee -a data.txt done 2)使用内置命令>>: cat ceshi.sh #!/bin/bash for((i=0;i<=10000;i ));do echo $RANDOM >> data.txt done 执行脚本 time sh ceshi.sh 结果: 1)real 0m16.876s user 0m3.639s sys 0m13.504s 2)real 0m0.474s user 0m0.375s sys 0m0.099s 我们这回知道什么叫差距了,当然了一部分时间消耗在tee命令的运用上了. 再举个例子:先看一下http://bbs.chinaunix.net/thread-1006441-1-1.html 这位网友的问题完全可以用sort -t, -k 4 -u infile 来解决,其实真正耗费资源的不是sort而是过多的运用了管道. 5,批量重复命令可选择放入后台执行,提高执行效率,可采用管道来控制同时放入后台执行的进程数以避免负载过高.具体可参考本博《 SHELL模拟多线程脚本的详细注解 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于shell脚本优化原则(持续更新)的所有评论