我正在为我的公司编写一个自定义的apache日志解析器,我注意到了一个无法解释的性能问题。我有一个大小为1.2GB的文本文件log.txt。
命令:sort log.txt比命令:cat log.txt | sort 慢3秒
有人知道为什么会发生这种事吗?
cat file | sort
是Cat的无用用途。
cat的目的是连接(或"catenate")文件。如果只是一个文件,将其与没有什么是浪费时间,而且要花费一个过程。
应该不会花更长的时间。你确定你的时间安排对吗?
请张贴输出:
time sort file
和
time cat file | sort
您需要运行命令几次,然后得到平均值。
与其担心sort
的性能,不如更改日志:
- 消除日志中不必要的冗长输出
- 定期滚动日志(根据日期或大小)
- 。。。修复输出到日志的错误。;)
另外,你确定cat正在读取整个文件吗?它可能有一个读取缓冲区等。