я начал мой jar
из командной строки с помощью следующей командыJava OutOfMemory Странная ошибка
java -Xms1200m -Xmx1500m -jar xxx.jar
и я создаю BufferedImage
, который находится в размере 12600 * 12600 означает, что он требует
606 MB памяти в следующем коде
TranscoderInput input = new TranscoderInput(sr);
String pngFile = "Style-" + shoeViewer.getCurrentStyle() + "_"
+ shoeViewer.getSelectedMetadata().getSizeLabel()
+ "_400DPI" + ".png";
File outputFile = new File(pngFile);
FileOutputStream fo = new FileOutputStream(outputFile);
TranscoderOutput output = new TranscoderOutput(fo);
long now = System.currentTimeMillis();
t.transcode(input, null);
, когда я отлаживаю использование памяти перед выполнением над строками, мое время выполнения
Мне нужно 606 МБ памяти и МБ по-прежнему свободен.
Так что, когда я пробегаю над кодами через 34 минуты, он бросает OutOfMemory
Исключение.
В чем проблема? это проблема процесса или проблема кучи? почему это занимает 34 минуты ??
Моя конфигурация ПК следующий
Windows 32bit XP Service Pack2 Home Edition
Amd Athlon (tm) 7750 Dual Core 2.71 GHz
2GB of DDR2 RAM
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) Client VM (build 23.7-b01, mixed mode, sharing)
пожалуйста, помогите мне решить эту проблему.
Ниже приведена таблица стека исключений с отладочными сообщениями.
перед запуском выше кода я изменил VM аргумент следующий
java -Xms900m -Xmx1024m -XX:MinHeapFreeRatio=40 -XX:MaxHeapFreeRatio=70 -jar myjar.jar
Building XML документ от SVG чтения .... Сложение завершена из XML-документа из SVG чтения .... Преобразование модифицированного документа XML для String Writer .... Преобразование завершено с измененным XML-документом в String Writer .... утверждал, что у него 766 Avaialbel Bytes 900189232 Память статистики -------------------- ---- Общая память - это байты: 912326656 Общая память - мегабайт: 870 Используется память байты: 9308384 Используется памятью является мегабайтом: 8 FreeMemory является байтами: 900189096 Свободной памяти мегабайты: 858
транскодирования начал в: Sun 24 марта 11:09:59 IST 2013
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa
ce
at java.awt.image.DataBufferInt.<init>(Unknown Source)
at java.awt.image.SinglePixelPackedSampleModel.createDataBuffer(Unknown
Source)
at java.awt.image.Raster.createWritableRaster(Unknown Source)
at org.apache.batik.gvt.renderer.StaticRenderer.updateWorkingBuffers(Sta
ticRenderer.java:536)
at org.apache.batik.gvt.renderer.StaticRenderer.repaint(StaticRenderer.j
ava:375)
at org.apache.batik.gvt.renderer.StaticRenderer.repaint(StaticRenderer.j
ava:344)
at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTran
scoder.java:111)
at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstra
ctTranscoder.java:142)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstra
ctTranscoder.java:156)
at com.mmg.app.eventlistener.PlaceOrderActionListener.save(PlaceOrderAct
ionListener.java:302)
at com.mmg.app.eventlistener.PlaceOrderActionListener.saveCanvas(PlaceOr
derActionListener.java:270)
at com.mmg.app.eventlistener.PlaceOrderActionListener.actionPerformed(Pl
aceOrderActionListener.java:143)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour
ce)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
@TReddy, если вы знаете ответ, то почему вы его не дадите? – Mihir
@ Марун, ты знаешь ответ? – Mihir
Какой тип объекта 't'? – ecbrodie