Error java.lang.OutOfMemoryError: GC overhead limit exceeded — ¿qué hacer?
¡Hola a todos! Soy un desarrollador Java principiante, estoy escribiendo una pequeña aplicación para procesar logs. El programa lee un archivo de texto grande (aproximadamente 500 MB), divide las líneas en palabras y recopila estadísticas — cuántas veces aparece cada palabra. Uso HashMap.
Todo funcionaba bien con archivos pequeños, pero cuando lo ejecuté con datos reales, después de un par de minutos apareció el error:
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
Aquí está el 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);
}
}
```