“如何修复”;OutOfMemoryError:java.lang.OutOfMemoryError:java堆空间;真的
我正在尝试用JES对图像进行灰度处理,图像大小约为3000x2000。每当我运行它时,都会给我OutOfMemoryError:java.lang.OutOfMemoryError:java堆空间 我对这种语言相当陌生,所以我不确定这是不是我的代码造成的问题“如何修复”;OutOfMemoryError:java.lang.OutOfMemoryError:java堆空间;真的,java,python,jython,jes,Java,Python,Jython,Jes,我正在尝试用JES对图像进行灰度处理,图像大小约为3000x2000。每当我运行它时,都会给我OutOfMemoryError:java.lang.OutOfMemoryError:java堆空间 我对这种语言相当陌生,所以我不确定这是不是我的代码造成的问题 def grayscale(pic): for p in getPixels(pic): intensity = (getRed(p) + getGreen(p) + getBlue(p))/3 setColor(p, makeC
def grayscale(pic):
for p in getPixels(pic):
intensity = (getRed(p) + getGreen(p) + getBlue(p))/3
setColor(p, makeColor(intensity, intensity, intensity))
输出应该是图像的灰度版本您的
getPixels()
或setColor()
在某个地方有内存泄漏(调用自身或创建太多变量以存储在堆栈中)。这或你的图像是巨大的。@Matt它的大小是2953x2088。你知道我将如何优化我的函数吗?你在这里使用的是什么数据结构?当你在较小的图像上尝试它时会发生什么?@AdityaSantoso它工作得很好,给了我我所期望的。你的getPixels()
或setColor()
在某个地方有内存泄漏(调用自身或创建太多变量以存储在堆栈中)。这或您的图像太大了。@Matt其大小为2953x2088。知道我将如何优化我的函数吗?您在这里使用的是什么数据结构?在较小的图像上尝试时会发生什么?@adityasanto它工作正常,并给出了我所期望的结果。