java - 使用预编译的正则表达式模式提高速度

标签 java android regex performance

我正在编写一个解析器,标记由正则表达式识别。
我对每个输入行都使用正则表达式,尽管每个正则表达式本身都很短并且匹配的字符串也很短(几个字符,最多 10 个)。

this发布了使用 javascript 的浏览器的正则表达式速度比较测试,显示速度从 0% 提高到 20%。

java和android是什么情况?预编译我的正则表达式会使我的扫描显着更快吗? (我知道这不会让他们变慢)
是否存在我必须在同一正则表达式上运行才能看到任何差异的最少匹配数?

最佳答案

首先,请记住这篇文章讨论的是 Javascript 正则表达式是否存储在变量中。这与预编译正则表达式 AFAIK 不同。

但是,即使是;要真正知道哪个更好,您必须测试所使用的实际正则表达式。如果一个被使用多次,它可能是值得的。

但是如果你要运行许多“随机”正则表达式,这可能不是一个好主意,因为你最终可能会在内存中闲置大量正则表达式,懒惰,看电视,吃零食...

所以,我的答案还是;在“真实世界”的情况下对其进行测试。即使这意味着发布您的应用并在以后对其进行修改。

关于java - 使用预编译的正则表达式模式提高速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21075418/

相关文章:

java - 静态成员有助于提高内存效率吗?

java - 为什么我的 Java 骰子游戏不断重复滚动?

Android:在 Activity 上下文之外使用 WebView

javascript - 正则表达式 JavaScript 捕获直到(之前)可选字符串

java - 我应该使用文本文件还是数据库?

java - Socket.io Java客户端在几秒钟后自动断开连接

android - 在 Android 上将循环设置为 -1 时不播放声音

java - Android 中的多分辨率?

javascript - 正则表达式将逗号分隔的 css 类名称字符串拆分为数组

python - 在 SQLite SELECT 语句中使用 Python 正则表达式代码