【发布时间】:2012-09-19 17:35:28
【问题描述】:
我真的很惊讶 GREP 在 shell 中的功能,之前我在 java 中使用 substring 方法,但现在我使用 GREP 并且它在几秒钟内执行,它比我使用的 java 代码快得多写。(根据我的经验,我可能是错的)
话虽如此,我还无法弄清楚它是如何发生的?网络上也没有太多可用的。
谁能帮我解决这个问题?
【问题讨论】:
-
它是开源的,所以你可以自己看看。 gnu.org/software/grep/devel.html
-
Ridiculous Fish 有一篇很棒的文章准确地回答了你的问题:ridiculousfish.com/blog/posts/old-age-and-treachery.html
-
@WilliamPursell 当执行时间以秒为单位时,JIT 可能已经热身,而令人麻木的差异是由于 (1) grep 对它所做的事情非常聪明和 (2) Java 代码为 grep 关注的特定问题做出了非常糟糕的算法选择。
-
您的 Java 实现在启动 JVM 上花费了多少时间,实际执行代码花费了多少时间?或者这可能与您在 Java 代码中使用的算法有关; O(N^2) 算法在任何语言中都可能很慢。