【发布时间】:2011-06-03 10:24:44
【问题描述】:
我正在为我的公司编写一个自定义 apache 日志解析器,但我发现了一个我无法解释的性能问题。我有一个大小为 1.2GB 的文本文件 log.txt。
命令:sort log.txt 比命令:cat log.txt 慢 3 秒 |排序
有人知道为什么会这样吗?
【问题讨论】:
-
是否因为日志文件在此期间增长而导致通话时间比另一个通话时间长?
-
没有。我处理文件的本地副本。
-
是不是因为第二次尝试(cat|sort)log.txt 是从缓存而不是磁盘读取的,所以您保存在磁盘访问上,而不是实际排序?请通过 strace -C 运行您的排序,看看有多少时间用于磁盘访问。或者只是将文件放在 ramdisk 上并在那里运行您的实验。
-
如果它是 1.2 GB,不妨试试这个:LC_ALL=C sort log.txt LC_COLLATE=C 也可能有帮助。