2012-04-18 1 views
1

저는 연구 논문에 설명 된 알고리즘을 구현하고이 논문에서 설명한 실험을 실행해야하는 수업을위한 프로젝트를 진행하고 있습니다. 이 논문은 최단 경로 쿼리와 관련되어 있으므로 JUNG 라이브러리를 사용하고 있습니다. 실험에 사용 된 종이 및 데이터 세트는 here입니다.Java에서 데이터 구조/변수의 메모리 크기를 예측하는 방법은 무엇입니까?

어쨌든 실험의 일부는 알고리즘에 사용 된 데이터 구조 (원본 그래프에서 파생 된 트리와 최단 경로의 일부 정보)를 다른 알고리즘의 데이터 구조에 사용 된 메모리와 비교하는 작업입니다. 동일한 그래프에서 다시 실행하십시오. 이 논문의 저자는 C++로 코드를 작성했지만, 교수님은이 프로젝트에 사용할 언어를 선택하게했습니다. 그래서 자바를 선택 했으므로 Java를 선택 했으므로 코드가 더 빨라졌습니다 ...하지만 지금은 아닙니다. 이 메모리 사용법을 파악하는 방법을 알아보십시오.

비슷한 질문을하는 몇 가지 질문을 발견했지만 몇 개는 오래되었습니다 (4 ~ 5 년). 다른 사람들은 똑같은 질문을하지 않는 것 같습니다. 그들은 변화하지 않을 구조의 크기를 계산하고있었습니다. 그래서 누군가 알고리즘이나 메소드, 또는 이것을 더 잘 예측할 수있는 라이브러리를 가르쳐 줄 수 있기를 바랍니다. 나는 그것이 정확할 필요가 있다고 생각하지 않는다. 그러나 나는 적어도 일종의 견적을 필요로한다.

답변

1

당신은 다양한 인 SizeOf 구현보고 싶을 : 여기

그러나 this question은 ~.

+0

하나는 또한 sizeof.sourceforge.net 라이브러리를 권장하지만, 코멘트 그렇게하지 날을 만들 그것에 대해 확실히. 한 사람은 그것이 받아 들여지는 대답에 설명 된 방법과 같다고 말했습니다. 이것은 분명히 몇 가지 문제가 있습니다 (String과 관련된 모든 것의 크기를 얻을 수없는 것과 같습니다). 그걸 좀 비춰 줄 수 있니? 나는 도서관이 할 수있는 것에 정확히 혼란 스럽다. – Maltiriel

+0

글쎄, 만약 당신이 시나리오를 구현했다면, 나는이 추정을 한 데이터 구조에 메소드를 추가 할 것이라고 생각한다. 문자열 등을 들여다 볼 수 있기 때문에 자바 옵션이 문자열을 지정할 수 있어야한다. byte [] not char []로 저장 될 것입니다. 따라서 이것은 매우 흔들립니다. – daveb

+0

데이터 구조가 의도적으로 문자열을 공유 할 수도 있습니다.이 경우 일반적인 솔루션은 두 번 계산됩니다. 그래서 그것은 당신의 상황에 달려 있습니다. – daveb