unix中排序命令的性能



我正在为我的公司编写一个自定义的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正在读取整个文件吗?它可能有一个读取缓冲区等。

最新更新