我想用任何转储数据填充我的设备磁盘空间,作为压力测试的一部分。
我尝试将字节写入外部存储器中的文件;显然更大&更宽敞的磁盘需要更长的时间来填充。 [大约半分钟1GB]
在这种情况下,我们可以从adb shell做任何事情吗? 我检查了使用 dd 命令创建转储数据:
dd if=/dev/zero of=/tmp/tempFiller.deleteMe bs=1024 count=$COUNT
基本上将转储数据复制到目标文件 因此,它也需要很长时间。 [大约1分钟1GB]
有更快的方法吗?对于普通用户/超级用户?
我还在adb shell中尝试了fallocate, truncate & mkfile命令,但是即使在su中也找不到这些命令。我猜这些是bash命令&在Android设备中安装bash shell将需要设备已植根。
fallocate -l 10G gentoo_root.img
truncate -s 10M output.file
mkfile 10240m 10Gigfile
答案 0 :(得分:5)
我过去曾尝试过同样的事情。我的目的是填补设备上的所有内存。经过实验,我发现 dd 是编写大文件的最佳方式。我最好的速度是当我使用1MB的块大小时。我使用了100MB文件,以便能够平衡设备上的可用空间。
写100MB文件:
dd if=/dev/zero of=myfile.dat bs=1048576 count=100
另外,对于快速实验,我使用了免费应用程序FillMemory
答案 1 :(得分:1)
1GB半分钟(30秒)的写入速度超过30MB / s。考虑到目前大多数Android设备上的外部存储实际上是Secure Digital闪存卡,这种速度很可能是设备的卡或卡接口所支持的maximum速度。
如果使用中等块大小的dd
(例如bs=1M
)并没有改善,那么您可能已经达到了当前硬件的限制。