시소당
오늘 진행중인 프로젝트 관련하여 메모리 관련 자료를 수집하던중
아래 자료를 찾게 되었습니다.
Eclipse 3.3.2 과 TPTP 4.4.1 을 이용한 Profiling (Eclipse Java Project)이클립스 사이트에 들어가서 다운로드하여 설치까지 마치고 그동안
문제가 되었던 소스를 실행해 보았습니다.

위에 보이는 byte[] 이란넘이 계속 올라가더라구요
그래서 소스중 쓰이는 부분을 찾아보니
요넘이 범인이었습니다. ^^ㅋㅋ;
public int getImageSize() {
int lenSize = 0;
InputStream in = null;
FileOutputStream out = null;
byte[] buf = null;
try {
in = yahoo.openStream();
out = new FileOutputStream(tmpFile);
buf = new byte[2048];
int len;
lenSize = 0;
while ((len = in.read(buf)) > 0) {
lenSize += len;
out.write(buf, 0, len);
}
out.close();
in.close();
return lenSize;
} catch (Exception me) {
} finally {
if (out != null)
try {
out.close();
} catch (IOException ex) {
}
if (buf != null)
try {
buf = null;
} catch (Exception ex) {
ex.printStackTrace();
}
if (in != null)
try {
in.close();
} catch (IOException ex) {
}
}
return lenSize;
}
이미지 저장과 동시에 크기를 가져오는 메소드인데
파일버퍼로 쓰이는
byte[] buf 요넘을 반환하지 않아서 생긴 문제였습니다.
그동안 이문제 때문에 모든 객체를 반환하게끔 소스를 수정했는데
이넘을 빼먹어 문제가 계속 발생하였네요
생성한건 작은거라도 모두 반환해야 겠습니다.
int 는 반환하지 않았는데 이넘들도 귀찮더라도 반환해야 할듯.
오늘 툴도 배우고 범인도 잡고 ^^; 밥먹으러 가야겠슴돠.... ㅋ
수정후 테스트 해보니 동일한 에러가 계속 발생하네요 ㅠ,.ㅠ
대체 뭐가 문제얏!!!!!!!!
[:2008년 04월 16일 10:52:57 수정되었습니다.:]