我有一个大(大于 200K)的字符串数组,用于搜索文档中的模式。在将数组中的每个条目应用于文档之前,我将其转换为正则表达式。当我这样做时,遍历数组并顺序执行搜索所需的时间会急剧增加。我相信这适用于我在执行搜索之前依次应用于每个正则表达式的 Pattern.compile 语句。预编译正则表达式可能是解决这个问题的一种方法,但我注意到当我这样做时内存使用量急剧增加。在预编译之前,Java 应用程序在大小约为 1.5 GB 的 VM 中运行。预编译后,java 程序在大小约为 14 gig 的 VM 中运行。
有没有一些优雅的方法来解决这个问题或让程序更有效地运行?
谢谢,
艾略特