在unix中执行sorting命令

我正在为我的公司编写一个自定义的apache日志parsing器,我注意到一个性能问题,我无法解释。 我有一个1.2GB的文本文件log.txt。

命令:sort log.txt比命令慢了3秒:cat log.txt | 分类

有人知道这是为什么吗?

cat file | sort cat file | sort是猫的无用的使用 。

cat的目的是连接(或“链接”)文件。 如果只有一个文件,连接它什么都不是浪费时间,并且花费你一个过程。

它不应该花更长的时间。 你确定你的时机是正确的吗?

请张贴以下的输出:

 time sort file 

 time cat file | sort 

你需要运行命令几次,并得到平均。

而不是担心sort的性能,而应该改变你的日志记录:

  • 消除不必要的详细输出到您的日志。
  • 定期滚动日志(基于日期或大小)。
  • …修正输出到日志的错误。 ;)

另外,你确定猫正在阅读整个文件? 它可能有一个读取缓冲区等