0
我在加密Java文件时遇到内存泄漏问题。Java AES文件加密内存问题
以下是增加应用程序的内存使用情况的代码,完成后它不会释放已使用的内存。
while (bytesRead > 0) {
cout.write(buffer, 0, bufferSize);
md.update(buffer, 0, bufferSize);
bytesAvailable = fin.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fin.read(buffer, 0, bufferSize);
readSoFar += bytesRead;
cout.flush();
}
如果我在每次迭代中放入不建议使用的System.gc(),则内存不会增长。
请注意,无法确切地确定垃圾收集何时发生。你是否真的看到了内存问题(如OutOfMemory异常)?如果不是这样,它可能是好的,JVM会在需要时回收内存。 – Aurand
你是对的,但是当我用GB将大量文件转化为GB时,我没有看到任何内存不足问题,但是我的16 GB RAM系统的内存使用量超过了4 GB。是的,我等了几个小时,但记忆从未回收。 – user2319247