linux - Android Studio 模拟器/AVD 非常高的磁盘负载(Linux)

标签 linux android-studio qemu

我正在尝试在 Mint 18 上使用 Android Studio (4.0) 附带的 android 模拟器。不幸的是,一旦我运行一个设备,我的磁盘就会看到繁重的工作量,我真的不知道为什么 - 它必须是很多小写我可以在 nmon 中看到。这使得整个仿真完全无用,因为仿真设备不再真正响应。它不取决于我要模拟的设备(Pixel/Pixel2/自己的硬件)。

我看不到的是,哪些文件受到影响以及原因。甚至 iotop 也只告诉我 qemu-system-i386 将一些工作负载放在磁盘上,而不是放在磁盘上(当然)。

我唯一能说的是,如果我使用“-read-only”-Argument 从命令行启动设备,那么所有的魔法都会消失——然后一切都运行良好且快速。
但这无论如何都不是解决方案,因为它不会保留模拟设备上的更改。

有任何想法吗?

最佳答案

我完全同意拉曼的评论:磁盘写入过多。当我使用android studio("version":"dev build","buildNumber":"203.7717.56.2031.7678000",)模拟器时,gnome的系统监视器中实时“磁盘写入”值最高的进程可以达到40 或 50 MB/s,这是相当惊人的。 40 或 50 MB/s 不仅在仿真开始或结束时,只要我在虚拟设备中进行任何操作(即,滑动、单击、打开应用程序)也会发生。 (顺便说一句,ubuntu 20.04,ryzen 4800h,16GB 3200 ddr4 双 channel RAM,模拟像素 4,android 11 x86 与谷歌播放)。我也在试图找出原因。
也许您可以通过禁用快速启动快照来减少“磁盘写入”?我禁用了自动快照,并手动拍摄快照。然后禁用快速启动,并将默认启动选项从“快速启动”设置为“从一个特定保存的快照启动”。请记住,设置cconfiguration后,您必须重新启动PC以验证设置,否则设置可能会或可能不会生效,或者除非重新启动否则您根本无法打开仿真。
重新启动后,“磁盘写入”值从40或50 MB/s下降到正常范围,大多数情况下低于1 MB/s。但是,重启后,我无法在模拟的Android设备上阅读微信应用程序(来自腾讯公司)中的官方帐户的文章。点击后文章只是停留在加载状态。所以这个设置也可能会影响一些正常的功能。
https://developer.android.com/studio/run/emulator#snapshots
https://developer.android.com/studio/run/emulator#quickboot-troubleshooting
“加载或保存快照是一项内存密集型操作。如果在加载或保存操作开始时没有足够的可用 RAM,操作系统可能会将 RAM 的内容交换到硬盘,这会大大减慢操作速度。如果您遇到非常慢的快照加载或保存,您可以通过释放 RAM 来加速这些操作。关闭对您的工作不重要的应用程序是释放 RAM 的好方法。
对于您的描述,“但这无论如何都不是解决方案,因为它不会保留模拟设备上的更改。”当您需要保存时,您可以简单地手动拍摄快照,并将其设置为您的启动快照。

关于linux - Android Studio 模拟器/AVD 非常高的磁盘负载(Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62471597/

相关文章:

c++ - 仅计算 *.cpp 和 *.h 类型文件中的行数

Android Studio 模拟器无法实现 eglSurfaceAttrib

android - Qemu,除以零,mxcsr 寄存器

c - 在 qemu 中测试系统调用

linux - 在 perl 中过滤具有给定输入范围的文件

linux - 为什么fork()的返回值不是反向的?

linux - 使用 WebKit 或其他工具在控制台 linux 应用程序中获取 DOM

android-studio - 如何从 IDEA 连接 Android Studio 模拟器?

java错误: installation of android studio on ubuntu 16. 04

virtualization - 使用 qemu 启动机器