Erro java.lang.OutOfMemoryError: GC overhead limit exceeded — o que fazer?
Olá a todos! Sou um desenvolvedor Java iniciante e estou escrevendo uma pequena aplicação para processar logs. O programa lê um grande arquivo de texto (cerca de 500 MB), divide as linhas em palavras e coleta estatísticas — quantas vezes cada palavra aparece. Estou usando HashMap.
Tudo funcionava normalmente em arquivos pequenos, mas quando executei com dados reais, após alguns minutos apareceu o erro:
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
Aqui está o código simplificado:
```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);
}
}
}
}
```