Avatar ·

java.lang.OutOfMemoryError: GC overhead limit exceeded 错误 — 如何解决?

大家好!我是一名刚开始学习Java的开发者,正在编写一个用于处理日志的小应用程序。程序会读取一个较大的文本文件(约500 MB),将行拆分成单词并收集统计数据——每个单词出现的次数。我使用的是 `HashMap`。 在小文件上运行一切正常,但当我用真实数据运行时,几分钟后出现了一个错误: Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded 以下是简化的代码: ```java public class LogAnalyzer { public static void main(String[] args) throws IOException { Map wordCount = new HashMap<>(); BufferedReader reader = new BufferedReader(new FileReader("large_log.txt")); String line; while ((line = reader.readLine()) != null) { String[] words = line.split("\\s+"); for (String word : words) { wordCount.merge(word, 1, Integer::sum); } } ```