2014-07-15 7 views
10

스트레스 테스트의 일부로 장치 디스크 공간에 덤프 데이터를 채우고 싶습니다.안드로이드 장치에 디스크 공간을 채우십시오.

외부 저장소의 파일에 바이트를 쓰려고했습니다. 분명히 더 큰 & 디스크가 더 길어지면 길게 채워집니다. [1 분 동안 약 1 분 30 분]

이 경우 adb 쉘에서 무엇을 할 수 있습니까? 나는 DD에게 명령을 사용하여 덤프 데이터를 생성 확인 : 기본적으로 복사 대상 파일 에 데이터를 덤프

dd if=/dev/zero of=/tmp/tempFiller.deleteMe bs=1024 count=$COUNT

따라서는 상당한 시간이 걸립니다. [1GB에 대해 1 분]

더 빠른 방법이 있습니까? 일반 사용자/수퍼 유저 용?

또한 adb 셸에서 fallocate, truncate & mkfile 명령을 시도했지만이 명령은 su 내부에서도 발견되지 않았습니다. 나는 bash 명령이라고 생각한다. & 안드로이드 장치에 bash 셸을 설치하려면 장치가 루팅되어야한다.

fallocate -l 10G gentoo_root.img 
truncate -s 10M output.file 
mkfile 10240m 10Gigfile 
+0

블록 크기를 대폭 늘려 보셨습니까? –

+0

@SkyKelsey, 예. 두 가지 방법 모두 시도했습니다. 우리가 프로그램 적으로 바이트를 파일에 쓸 때, bytearray가 가질 수있는 최대 크기 (Integer.MAX)와 또한 우리 앱에 사용 가능한 힙에주의해야합니다. 한 번에 더 큰 바이트 크기를 시도하면 dd 명령의 경우에도 작동하지 않습니다. 어쩌면 내부적으로 유효성을 검사 할 수도 있습니다. – jQueen

답변

4

나는 과거에 같은 것을 시도했다. 내 목적은 장치에 모든 기억을 채우는 것이 었습니다. 실험을 통해 나는 dd이 큰 파일을 작성하는 가장 좋은 방법이라는 것을 알았습니다. 가장 좋은 속도는 블록 크기에 1MB를 사용했을 때였습니다. 장치의 여유 공간을 균형있게 조정할 수 있도록 100MB 파일을 사용했습니다.

쓰기 메가 바이트 파일을 신속하게 실험 또한

dd if=/dev/zero of=myfile.dat bs=1048576 count=100 

내가 쓴 사용했습니다 무료 응용 프로그램은 반 분 (30초)에서 FillMemory

+0

다른 방법으로 장치를 채우려면 'cat file1 >> file1'을 실행해야합니다.이 파일은 Android에서 디스크 공간이 부족할 때까지 반복됩니다. :) –

1

1GB의 30메가바이트/s의 이상의 쓰기 속도입니다. 요즘 대부분의 Android 기기의 외부 저장소가 실제로는 Secure Digital 플래시 카드라고 생각하면 카드 또는 카드 인터페이스에서 기기의 속도를 지원하는 속도는 maximum 일 수 있습니다.

적당한 블록 크기 (예 : bs=1M)의 dd을 사용하면 개선되지 않는 경우 현재 하드웨어의 한계에 도달했을 가능성이 있습니다.