2016-07-01 3 views
-4

고정 크기 50MB의 Java 오브젝트는 어떻게 만들 수 있습니까?50MB Java 오브젝트 작성

큰 개체를 삽입 할 때 테이블 공간 이름을 측정하기위한 데이터베이스 테스트 목적으로이 개체가 필요합니다.

+0

실제로 큰 배열 인 필드로 생성 하시겠습니까? –

+1

새 바이트 [1024 * 50] 및 채우기? –

+0

전체 코드를 붙여 넣을 수 있습니까? –

답변

5

내가 생각하기에 가장 쉬운 방법은 배열이있는 객체를 만들고 배열에 50MB 상당의 데이터를 저장하는 것입니다. 정확히 50MB가 필요하면 객체의 오버 헤드 크기를 고려해야합니다. 그것은 압축 포인터가없는 12B이고 압축 포인터가있는 8B입니다. 배열의 크기는 데이터 유형에 따라 다릅니다. 복식을 사용하면 64 비트 (8 바이트)가됩니다. 이것은 비 압축 포인터에 고르게 맞지 않으므로 바이트 만 사용하려고 할 수 있습니다.

의견에서 언급했듯이 1MB는 ​​1 백만 바이트라고 가정합니다. 1kB = 1024B 및 1MB = 1024kB의 전통적인 값을 사용하면 필요한 것은 다음과 같습니다.

class fiftyMB{ 
    public byte data[52428788]; 
} 
+0

[MB 정의]에 따라 (https://en.wikipedia.org/wiki/Megabyte#Definitions). – shmosel

+0

@JoshA 우리는 MB를 정의해야합니다 : D – Tibrogargan

+0

2 기수라기보다는 10 기수저로 가기로 결심했습니다. 그렇지만 숫자는 약간의 작업을 할 수 있습니다. 두 버전을 모두 반영하도록 업데이트했으며 바이트 대신 double 값을 넣는 실수를 수정했습니다. –

관련 문제