Quantcast
Channel: JetBrains Developer Community : Thread List - IntelliJ IDEA Users
Viewing all articles
Browse latest Browse all 5661

Setting heap size in IntelliJ IDEA correctly

$
0
0

I have this peculiar problem with running a Processing application in IntelliJ IDEA. I want to save a large image and to do this I run in to the following exception:

 

Exception in thread "Animation Thread" java.lang.OutOfMemoryError: Java heap space at java.awt.image.DataBufferInt.(DataBufferInt.java:75) at java.awt.image.Raster.createPackedRaster(Raster.java:467) at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1032) at java.awt.image.BufferedImage.(BufferedImage.java:331) at processing.core.PImage.saveImageIO(PImage.java:3117) at processing.core.PImage.save(PImage.java:3297) at OffScreenRender.stopRender(OffScreenRender.java:38) at MainVecField.draw(MainVecField.java:93) at processing.core.PApplet.handleDraw(PApplet.java:2305) at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:243) at processing.core.PApplet.run(PApplet.java:2176) at java.lang.Thread.run(Thread.java:724)

 

So clearly there is some memory allocation problem here. The problem is that when i change the .vmoptions files in IntelliJ I get the same results, they have no effect. The "memory" number at the lower right corner of the IDE increases accordingly but it does not seem to let my application allocate more memory.

 

When I run the processing application in the processing IDE I can manage to save much larger files by setting a large heap size.

In IntelliJ nothing over 256mb seems to make a difference. So my question is how do I set a larger heap size in IntelliJ that allows my application to allocate more memory?

 

Thank you for your help!

 

I attach the code for my project in case anyone wants to test it out:

 

import processing.core.*;publicclassTestClassMainextendsPApplet{    publicstaticvoid main(String args[])    {        PApplet.main(newString[]{"--present","TestClassMain"});    }    //Global variables    OffScreenRender screenRender;    int c =0;    //Variables for offScreenRender    int resFactor =10;    boolean offScreenRenderSwitch =false;    publicvoid setup()    {        size(1000,700);        background(0);        stroke(255);        //Initialize the render object        screenRender =newOffScreenRender(this,11000,7950, resFactor);    }    publicvoid 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;    }    publicvoid keyPressed()    {        //Render the graphics to an offScreen buffer        offScreenRenderSwitch =true;    }}import processing.core.*;/**
 * Renders the processingsketch to a .tif file at specified resolution.
 */publicclassOffScreenRender{    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");    }}

Viewing all articles
Browse latest Browse all 5661

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>