이전에이 질문을했지만 필자는 몇 가지 사항을 다시 말하고 명확히하고 확장하려고합니다. AffineTransform을 사용하여 BufferedImage를 변환하는 코드 조각이 있습니다.AffineTransformOp 속도/메모리 질문
op = new AffineTransformOp(atx, interactive ? interpolationInteractive : interpolationNormal);
displayImage = op.filter(displayImage, null);
이 코드는 정상적으로 작동하지만 메모리가 누적됩니다. 특히이 코드 조각을 호출 할 때마다 더 많은 메모리가 저장됩니다. 나는 필터의 다른 형태도 시도했다.
op = new AffineTransformOp(atx, interactive ? interpolationInteractive : interpolationNormal);
displayImage2 = op.createCompatibleDestImage(displayImage, displayImage.getColorModel());
op.filter(displayImage, displayImage2);
그러나 이것은 첫 번째 버전보다 훨씬 느립니다. 두 번째 메모리 사용량으로 첫 번째 버전의 속도를 원합니다.
- 첫 번째 버전 이후에는 어떻게 정리할 수 있습니까? 특히, 중간 BufferedImages는 어디에 저장되며 어떻게 삭제할 수 있습니까?
- 두 번째 버전이 첫 번째 버전보다 느린 이유는 무엇입니까? 속도를 높이려면 어떻게해야합니까?
도움 주셔서 감사합니다.
실제로 OutOfMemoryErrors를 받고 있습니까? 그렇지 않다면 GC가 실제 메모리 누수가 아닌 객체를 수집 할 때의 문제 일뿐입니다. –