int [] 및 Integer [] 배열의 메모리 공간

벤 2307

3 천만 크기의 정수 배열을 만들려고합니다 (자체 개체로 시도했지만 int에서도 동일하게 발생). "OutOfMemoryError : Java 힙 공간"이 계속 발생합니다.

Integer [] index = new Integer[30000000];
for (int i = 0 ; i < 30000000 ; i++){
    index[i] = i;
}

"Runtime.getRuntime (). totalMemory ()"및 "maxMemory ()"를 사용하여 총 힙 공간을 확인한 결과 64MB로 시작하고 최대 값이 900MB 이상임을 확인했으며 실행 중에 900 이상을 얻었습니다. 힙과 크러쉬에.

이제 Integer가 4 바이트를 차지한다는 것을 알고 있으므로 30 * 4 * 1000000을 곱해도 150-100 메가 만 얻을 수 있습니다.

int와 같은 기본 유형으로 시도하면 작동합니다.

어떻게 고칠 수 있습니까?

앤드류 화이트

Java의 int 프리미티브는 4 바이트를 차지하지만 Integer와 같은 ValueObject를 사용하면 훨씬 더 많은 공간을 차지하게됩니다. 머신에 따라 참조만으로 32 비트 또는 64 비트를 차지할 수 있으며 래핑하는 기본 형식의 크기를 차지할 수 있습니다.

공간이 문제인 경우 기본 int를 사용해야합니다. 여기에이 주제를 더 자세히 설명하는 아주 좋은 대답이 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Solaris 11의 메모리 사용량 및 공간 디스크

분류에서Dev

Solaris 11의 메모리 사용량 및 공간 디스크

분류에서Dev

C ++ 및 C # 간의 공유 메모리 동기화

분류에서Dev

int a의 차이점; int b; 및 int a, b. (메모리 관리 존중)

분류에서Dev

긴 배열의 모든 회전에 대한 메모리 및 시간 효율적인 정렬

분류에서Dev

행> 열일 때 배열의 메모리 공간이 더 큰 이유

분류에서Dev

Spark의 RDD 메모리 공간

분류에서Dev

모든 x 요소를 O (n) 시간 및 O (1) 공간에서 배열의 끝으로 푸시

분류에서Dev

NaCl 및 공유 메모리

분류에서Dev

C ++ WIN32 공유 메모리에 정수 및 부울 배열 만들기

분류에서Dev

선형 시간 및 상수 메모리에서 배열 (목록) 회전

분류에서Dev

c에서 char 배열 및 문자열의 메모리 위치

분류에서Dev

실존 적으로 정량화 된 유형 및 관련 최적화 기술의 메모리 공간

분류에서Dev

메모리 레이아웃 및 커널 공간-사용자 공간

분류에서Dev

커널 가상 메모리 공간 및 프로세스 가상 메모리 공간

분류에서Dev

Solr 서버 메모리 및 디스크 공간

분류에서Dev

Realm Swift, 관계 및 메모리 공간 오류

분류에서Dev

Linux의 파일 구멍 및 공유 메모리?

분류에서Dev

프로세스 주소 공간의 공유 메모리?

분류에서Dev

사용 FromSQL 쿼리의 int 매개 변수의 배열 및 WHERE 절에

분류에서Dev

데이터 배열 및 CUDA의 데이터에 대한 포인터를위한 공유 메모리의 동적 할당

분류에서Dev

공유 메모리 및 문자열을 처리 할 때 성능 향상

분류에서Dev

공유 메모리가없는 openCL의 다차원 배열?

분류에서Dev

C #과 Python 프로세스간에 바이트 배열의 메모리를 공유하는 방법

분류에서Dev

메모리 매핑 I / O : I / O 공간 대 메모리 공간의 제어 레지스터

분류에서Dev

Java 8 Streams int 및 Integer

분류에서Dev

메모리 부족 오류 : Java 힙 공간-큰 배열 크기 사용

분류에서Dev

평균을 찾으십시오. int 배열의 최대, 최소 수 및 모드

분류에서Dev

C의 배열, 포인터 및 메모리 관리 장난감 예제 질문

Related 관련 기사

  1. 1

    Solaris 11의 메모리 사용량 및 공간 디스크

  2. 2

    Solaris 11의 메모리 사용량 및 공간 디스크

  3. 3

    C ++ 및 C # 간의 공유 메모리 동기화

  4. 4

    int a의 차이점; int b; 및 int a, b. (메모리 관리 존중)

  5. 5

    긴 배열의 모든 회전에 대한 메모리 및 시간 효율적인 정렬

  6. 6

    행> 열일 때 배열의 메모리 공간이 더 큰 이유

  7. 7

    Spark의 RDD 메모리 공간

  8. 8

    모든 x 요소를 O (n) 시간 및 O (1) 공간에서 배열의 끝으로 푸시

  9. 9

    NaCl 및 공유 메모리

  10. 10

    C ++ WIN32 공유 메모리에 정수 및 부울 배열 만들기

  11. 11

    선형 시간 및 상수 메모리에서 배열 (목록) 회전

  12. 12

    c에서 char 배열 및 문자열의 메모리 위치

  13. 13

    실존 적으로 정량화 된 유형 및 관련 최적화 기술의 메모리 공간

  14. 14

    메모리 레이아웃 및 커널 공간-사용자 공간

  15. 15

    커널 가상 메모리 공간 및 프로세스 가상 메모리 공간

  16. 16

    Solr 서버 메모리 및 디스크 공간

  17. 17

    Realm Swift, 관계 및 메모리 공간 오류

  18. 18

    Linux의 파일 구멍 및 공유 메모리?

  19. 19

    프로세스 주소 공간의 공유 메모리?

  20. 20

    사용 FromSQL 쿼리의 int 매개 변수의 배열 및 WHERE 절에

  21. 21

    데이터 배열 및 CUDA의 데이터에 대한 포인터를위한 공유 메모리의 동적 할당

  22. 22

    공유 메모리 및 문자열을 처리 할 때 성능 향상

  23. 23

    공유 메모리가없는 openCL의 다차원 배열?

  24. 24

    C #과 Python 프로세스간에 바이트 배열의 메모리를 공유하는 방법

  25. 25

    메모리 매핑 I / O : I / O 공간 대 메모리 공간의 제어 레지스터

  26. 26

    Java 8 Streams int 및 Integer

  27. 27

    메모리 부족 오류 : Java 힙 공간-큰 배열 크기 사용

  28. 28

    평균을 찾으십시오. int 배열의 최대, 최소 수 및 모드

  29. 29

    C의 배열, 포인터 및 메모리 관리 장난감 예제 질문

뜨겁다태그

보관