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);
}
}
```