【问题标题】:How fast is your GREP in Cygwin?你在 Cygwin 中的 GREP 有多快?
【发布时间】: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

我想知道

  1. 告诉我你的分数。你有没有遇到过 cygwin 或 GNU grep 速度慢的类似问题
  2. 如何提高性能
  3. 你有什么使用 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


【解决方案1】:
$ time for i in $(seq 1000); do grep "$i" .; done

real    0m13.741s
user    0m3.520s
sys     0m8.577s

$ uname -rvs
CYGWIN_NT-6.1-WOW64 1.7.15(0.260/5/3) 2012-05-09 10:25

$ which grep
/usr/bin/grep

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多