【发布时间】:2011-12-06 23:25:25
【问题描述】:
我在一台速度非常快的 PC 上使用 Cygwin,但是当我想使用 grep 时,我发现它非常慢。当我想处理一个大文件(比如 25Mb)时,它也很慢。这里我用一个例子来证明我的情况。
> time for i in $(seq 1000); do grep "$i" .; done
real 75.865 user 5.442 sys 14.542 pcpu 26.34
我想知道
- 告诉我你的分数。你有没有遇到过 cygwin 或 GNU grep 速度慢的类似问题
- 如何提高性能
- 你有什么使用 Cygwin 的提示
uname -rvs
CYGWIN_NT-6.1-WOW64 1.7.9(0.237/5/3) 2011-03-29 10:10
which grep
grep is /usr/bin/grep
grep is /bin/grep
grep is /usr/bin/grep`
【问题讨论】:
-
grep foo .不应该做任何事情 --.指的是一个无法读取的目录。 -
对同一个 25 MiB 文件进行 1000 次 grep 不是意味着您正在有效地处理 25,000 MiB (25 GiB) 的数据吗?你预计这会多快完成? (前提是你的命令是正确的)
-
另外,您正在寻找非常短的字符串(“1”..“1000”)。 GNU grep 可能决定在更长的字符串上使用 Boyer-Moore。 士气: 使用现实场景进行基准测试。
-
您通过请求 1000 个 grep 进程在很大程度上测试
fork()的性能。 Cygwin 的fork()很慢,因为在 Windows 上实现它需要一个全能的 hack。
标签: linux performance cygwin grep