2014-11-09 1 views
0

나는 다음 질문을 이해하는 데 어려움을 겪고있다.자바 제로 매트릭스 메모리 사용량

제로 매트릭스가 반드시 메모리 효율적입니까? zero-matrix는 메모리를 적게 소비합니까 (또는 메모리 비용이 들지 않습니까)?

자바에서 확인하려고했지만 메모리가 지정된 크기로 할당되었습니다.

저는 C/C++ 또는 matlab 및 옥타브와 같은 다른 언어와 행렬 및 벡터 메모리를 관리하는 방법에 대해 잘 모르겠습니다.

내가 왜 이것을 묻는 지 이유는 거대한 크기의 희소 매트릭스를 만들고 싶지만 대부분의 엔트리는 0이지만 자바의 제로 매트릭스가 여전히 많은 메모리를 요구하기 때문에 자바가 좋은 선택이 아니라는 것이 밝혀졌습니다 . 이 문제에 대해 경험이있는 사람이 있습니까? 그걸 어떻게 다루어야할지 모르겠다면, 당신의 도움은 인정 될 것입니다.

감사

+3

빈 배열을 모든 언어로 직접 할당하면 많은 메모리가 사용됩니다. 언어에 관계없이 스파 스 배열이나 행렬 용으로 특별히 고안된 데이터 구조를 사용해야합니다. –

답변

1

솔직한 제로 작성 행렬은 어떤 언어로 비용을 것입니다 : 할당 된 양이 어떤 번호를 당신이 그것을 채우기에 의존하지 않습니다.

스파 스 매트릭스 지원 및 많은 알고리즘을 제공하는 UJMP. 아마 다른 구현들이 존재할 것이다.

일반적으로 구현하기는 어렵지만 유용 할 것으로 보이는 것이 있으면 오픈 소스 라이브러리를 위해 google을 사용하십시오. 많은 바퀴가 이미 발명 된 가능성이 있습니다.

+0

9000 대단히 고맙습니다. UJMP에 대해 자세히 살펴볼 것입니다. – Luke

0

매트릭스에 공간을 할당해야하기 때문에 숫자가 저장 될 공간과 별도로 공간을 할당해야합니다. (null 일지라도).

그러나 누군가 어딘가에서 이것을 처리하기위한 데이터 구조를 설계했다고 상상할 수 있습니다.

내 마음에 가장 먼저 나타나는 것은 그 값에 따라 위치를 유지하는 데이터 구조를 만들 수 있다는 것입니다. 주어진 위치에서 존재하지 않는 값을 물어 보면 0을 반환 할 수 있습니다. 물론 이것은 소수의 0이나 작은 행렬이나 행렬에 비효율적입니다. 그냥 생각.