Réglage de la taille de segment de mémoire dans IntelliJ IDEA correctement

J'ai ce problème particulier avec l'exécution d'une application de Traitement dans IntelliJ IDEA. Je veux enregistrer une image de grande dimension et pour ce faire, je suis à court de l'exception suivante:

Exception in thread d'Animation "Thread" de java.lang.OutOfMemoryError: Java heap space
à java.awt.image.DataBufferInt.(DataBufferInt.java:75)
à java.awt.image.Raster.createPackedRaster(Raster.java:467)
à java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1032)
à java.awt.image.BufferedImage.(BufferedImage.java:331)
au niveau de la transformation.de base.PImage.saveImageIO(PImage.java:3117)
au niveau de la transformation.de base.PImage.enregistrer(PImage.java:3297)
au OffScreenRender.stopRender(OffScreenRender.java:38)
au MainVecField.tirage(MainVecField.java:93)
au niveau de la transformation.de base.PApplet.handleDraw(PApplet.java:2305)
au niveau de la transformation.de base.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:243)
au niveau de la transformation.de base.PApplet.exécuter(PApplet.java:2176)
à java.lang.Fil de discussion.exécution(Thread.java:724)

Donc clairement il y a quelques allocation de mémoire problème ici. Le problème est que lorsque je modifie le .vmoptions fichiers à l'Ide, j'obtiens les mêmes résultats, ils n'ont aucun effet. La "mémoire" le nombre dans le coin inférieur droit de l'IDE augmente en conséquence, mais il ne semble pas y laisser ma demande d'allouer plus de mémoire.

Quand je lance l'application de traitement dans le traitement de l'IDE, je peux gérer pour enregistrer des fichiers plus gros par la définition d'une grande taille de segment de mémoire.

À l'Ide, rien de plus de 256 mo de mémoire semble faire une différence. Donc ma question est comment puis-je configurer une plus grande taille de segment de mémoire à l'Ide, qui permet à ma demande d'allouer plus de mémoire?

Merci pour votre aide!

Je joins le code de mon projet au cas où quelqu'un veut le tester:

import processing.core.*;
public class TestClassMain extends PApplet
{
public static void main(String args[])
{
PApplet.main(new String[] { "--present", "TestClassMain" });
}
//Global variables
OffScreenRender screenRender;
int c = 0;
//Variables for offScreenRender
int resFactor = 10;
boolean offScreenRenderSwitch = false;
public void setup()
{
size(1000,700);
background(0);
stroke(255);
//Initialize the render object
screenRender = new OffScreenRender(this, 11000, 7950, resFactor);
}
public void draw()
{
frameRate(30);
stroke(255);
//Check if the render should be saved
if(offScreenRenderSwitch == true){screenRender.startRender();}
background(0,0,0);
rect(20+c,height/2,60,60);
if(offScreenRenderSwitch == true)
{
screenRender.stopRender();
offScreenRenderSwitch = false;
}
c += 2;
}
public void keyPressed()
{
//Render the graphics to an offScreen buffer
offScreenRenderSwitch = true;
}
}
import processing.core.*;
/**
* Renders the processingsketch to a .tif file at specified resolution.
*/
public class OffScreenRender
{
PApplet parent; //The parent PApplet
PGraphics render;
int width;
int height;
int resFactor;
OffScreenRender(PApplet p, int width_, int height_, int resFactor_)
{
//Initialize variables
parent = p;
width = width_;
height = height_;
resFactor = resFactor_;
render = parent.createGraphics(width, height);
}
//Render the image
void startRender()
{
parent.beginRecord(render);
render.scale(resFactor);
PApplet.println("first step");
}
//Render the image
void stopRender()
{
parent.endRecord();
PApplet.println("second step");
render.save("hej");
PApplet.println("final step");
}
}

OriginalL'auteur Lukas Arvidsson | 2013-09-05