小编Luk*_*son的帖子

正确设置IntelliJ IDEA中的堆大小

我在IntelliJ IDEA中运行Processing应用程序时遇到了这个特殊问题.我想保存一个大图像并执行此操作我遇到以下异常:

线程"动画线程"中的异常java.lang.OutOfMemoryError:java.awt.image.Raster.createPackedRaster(Raster.java:467)中java.awt.image.DataBufferInt.(DataBufferInt.java:75)的Java堆空间java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1032)在java.awt.image.BufferedImage.(BufferedImage.java:331)处理处理时的processing.core.PImage.saveImageIO(PImage.java:3117). core.PImage.save(PImage.java:3297)在OffScreenRender.stopRender(OffScreenRender.java:38)的MainVecField.draw(MainVecField.java:93)处理.处理.Cack.Papplet.handleDraw(PApplet.java:2305)at at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:243)atprocess.core.PApplet.run(PApplet.java:2176)at java.lang.Thread.run(Thread.java:724)

很明显这里有一些内存分配问题.问题是,当我更改IntelliJ中的.vmoptions文件时,我得到相同的结果,它们没有任何效果.IDE右下角的"内存"编号相应增加,但似乎不让我的应用程序分配更多内存.

当我在处理IDE中运行处理应用程序时,我可以设法通过设置较大的堆大小来保存更大的文件.

在IntelliJ中,超过256mb似乎没有什么区别.所以我的问题是如何在IntelliJ中设置更大的堆大小,允许我的应用程序分配更多的内存?

谢谢您的帮助!

我附上了我的项目的代码,以防有人想测试它:

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 …
Run Code Online (Sandbox Code Playgroud)

java processing intellij-idea heap-size processing-ide

11
推荐指数
1
解决办法
3万
查看次数

如何将数组操作"复制"到另一个数组?

这可能是一个简单的问题,但我有两个大约1000个元素的数组,它们被称为posXArrayposYArray.我想用posYArray数字排序(最低的数字)但我希望元素posXArray具有相同的操作应用于它们......

例如,如果element [56] posYArray是最小的,我希望元素[56] posXArray也被移动到[0].

如何以简单/好的方式在Java中实现它?

非常感谢你的帮助!

java arrays

6
推荐指数
2
解决办法
100
查看次数

了解程序集中的符号和溢出标志

这个问题是关于cmp装配的指令.我无法理解我的书如何推断SFOF旗帜.

 cmp vleft, vright
Run Code Online (Sandbox Code Playgroud)

根据我的书:对于有符号整数,有三个重要的(ZF)标志:零标志,溢出(OF)标志和标志(SF)标志.如果操作结果溢出(或下溢),则设置溢出标志.如果操作结果为负,则设置符号标志.如果vleft = vright,ZF则设置(就像无符号整数一样).如果vleft > vright,ZF是未设置的SF = OF.如果vleft < vright,ZF是未设置的SF != OF.不要忘记其他指令也可以改变FLAGS寄存器,而不仅仅是CMP.

首先,让我们考虑一下这个vleft > vright案子.我的书说如下:

如果vleft> vright,为什么SF = OF?如果没有溢出,则差异将具有正确的值,并且必须是非负的.因此,SF = OF = 0.但是,如果存在溢出,则差异将不具有正确的值(并且实际上将是负的).因此,SF = OF = 1.

第一部分我明白了SF = OF = 0.例如,它可以是:

0111 - 0101 = 0111 + 1010 + 1 = 10010 …

x86 assembly

4
推荐指数
1
解决办法
8094
查看次数