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