Estoy obteniendo un java outOfMemoryError cuando llamo a este método - lo estoy usando en un bucle para analizar muchos archivos grandes en secuencia. mi suposición es que result.toString()
no está recibiendo basura recogida correctamente durante el ciclo. si es así, ¿cómo debería solucionarlo?java outOfMemoryError con stringbuilder
private String matchHelper(String buffer, String regex, String method){
Pattern abbrev_p = Pattern.compile(regex);//norms U.S.A., B.S., PH.D, PH.D.
Matcher abbrev_matcher = abbrev_p.matcher(buffer);
StringBuffer result = new StringBuffer();
while (abbrev_matcher.find()){
abbrev_matcher.appendReplacement(result, abbrevHelper(abbrev_matcher));
}
abbrev_matcher.appendTail(result);
String tempResult = result.toString(); //ERROR OCCURS HERE
return tempResult;
}
¿Qué tan grande es un "gran archivo"? Puede ser que no esté asignando suficiente memoria a la JVM. – Ash
Mostrar texto de error para futuras investigaciones. – Artic
¿qué tal el puro String of OString Length: 2769348? La mayor parte de la cadena es el nexString de las fotos capturadas –