Jgraphx не хватает памяти - Java

Я пытаюсь создать mxgraph и изображение из созданного mxgraph в JAVA. Ниже приведен код для создания изображения из mxgraph.

BufferedImage image = mxCellRenderer.createBufferedImage(graph,
               null, 1, Color.WHITE, graphComponent.isAntiAlias(), null,
               graphComponent.getCanvas());

// Creates the URL-encoded XML data
mxCodec codec = new mxCodec();
String xml = URLEncoder.encode(mxXmlUtils.getXml(codec.encode(graph.getModel())), "UTF-8");
mxPngEncodeParam param = mxPngEncodeParam.getDefaultEncodeParam(image);
param.setCompressedText(new String[] { "mxGraphModel", xml });

//Saves as a PNG file
outputStream = new FileOutputStream(new File("graph.jpg"));

ImageIO.write(image, "jpg", outputStream);
outputStream.close();
image = null;

Я использую иерархическое расположение в графике.

Но я получаю ошибку нехватки памяти при создании изображения для большого графика.

Как я могу избавиться от этой проблемы с памятью (кроме увеличения размера кучи)? Есть ли другой альтернативный способ решения этой проблемы (кроме увеличения размера кучи)?

1 ответ

Смотрите этот пост здесь:

http://forum.jgraph.com/questions/5408/save-as-png-detect-out-of-memory

особенно нижняя часть. В JGraphX ​​есть проверка, которая определяет, достаточно ли памяти. Это неправильно. Возможно, не хватает памяти, потому что GC еще не запущен. Если GC запускается, память освобождается, и метод createBufferedImage может быть успешным. Таким образом, вместо проверки свободной памяти, память должна была быть просто выделена в блоке try { ... } catch( Error err} { ... }.

Другие вопросы по тегам