四时宝库

程序员的知识宝库

Shell:提高脚本性能 - 更好的文件操作

无论是有意还是无意,shell脚本中创建或删除了很多文件。由于使用了大量的文件,处理文件变得非常重要。即使一个简单的回显语句重定向输出到一个文件中,也必须首先打开该文件,将数据写入该文件,然后关闭该文件。让我们来看一个例子:

#!/usr/bin/sh

cnt=1
while [ $cnt -ne 100 ]
do
    echo $cnt >> file
    let cnt=cnt+1
done

这个脚本很容易理解。在一个while循环内,每当计数值增加时,变量就会被写入或追加到文件中。循环运行100次。每次,输出文件都会被打开,数据被写入,文件被关闭。是的,这会发生100次。在实际情况下,如果循环运行在数百万条记录上,这可能会导致巨大的时间消耗。

现在,让我们来看一下下面的示例,这是上述示例的改进版:

#!/usr/bin/sh

cnt=1
while [ $cnt -ne 100 ]
do
    echo $cnt 
    let cnt=cnt+1
done >> file

在每个实例中写入计数值改为在while循环结束时仅写入一次。每次执行echo语句时,echo打印的输出都会保留在缓冲区中。当while循环完成后,整个缓冲区内容都会被写入文件。将这个解决方案与上面的解决方案进行比较,想象一下性能的提高。

提示: 每当你在一个循环中使用打印语句时,尝试检查它们是否可以放在更好的位置。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接