gpt4 book ai didi

android - 如何在 Android 模拟器中模拟慢速磁盘 IO?

转载 作者:行者123 更新时间:2023-12-05 00:00:07 24 4
gpt4 key购买 nike

我想模拟慢速/高延迟磁盘 IO 对我在 Android 模拟器上运行时正在开发的 Android 应用程序的影响。

与限制网络 IO 不同,我无法在 Android Emulator 文档中找到有关如何执行此操作的任何内容。我发现 qemu 显然支持限制磁盘 IO - 是否可以为 Android 应用程序执行此操作?

最佳答案

找到了如何使用 Android 模拟器做到这一点:

QEMU 支持以下 IO 节流选项(-drive 选项的子选项):

|-----------------------+-----------------------|
| -drive | block_set_io_throttle |
|-----------------------+-----------------------|
| throttling.iops-total | iops |
| throttling.iops-read | iops_rd |
| throttling.iops-write | iops_wr |
| throttling.bps-total | bps |
| throttling.bps-read | bps_rd |
| throttling.bps-write | bps_wr |
|-----------------------+-----------------------|

如果您使用 -verbose 选项运行模拟器,您可以检查用于启动 VM 的 QEMU 选项是什么:

emulator -avd [avd name] -verbose

例如,对于 userdata 图像驱动器选项可能如下所示:

-drive if=none,index=2,id=userdata,file=/path/to/userdata-qemu.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576

复制图片路径(/path/to/userdata-qemu.img.qcow2),手动传递:

emulator -avd [avd name] -data /path/to/userdata-qemu.img.qcow2

如果您使用此命令启动模拟器,它将使用此路径作为用户数据镜像而不是自动发现。现在我们可以利用它只是连接 QEMU 选项来注入(inject)我们的节流参数这一事实:

emulator -avd [avd name] -data /path/to/userdata-qemu.img.qcow2,throttling.iops-total=10,serial=qwerty

最终的 QEMU 选项字符串将如下所示:

...
-drive if=none,index=2,id=userdata,file=/path/to/userdata-qemu.img.qcow2,throttling.iops-total=1,serial=test.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576
...

关于android - 如何在 Android 模拟器中模拟慢速磁盘 IO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53403925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com