qemu - 如何配置 Qemu 以提高 qemu-arm-static 的速度
问题描述
当我如下所示进行配置然后编译时,生成的 qemu-arm 的性能比 Ubuntu 18.04.3 (AMD64) 附带的 qemu-arm-static 差很多(大约 20 到 40)倍。
我使用了与 Ubuntu 附带的版本相同的分支(stable-2.11)。
我该如何配置以获得更高的性能?
./configure --static --target-list=arm-softmmu,arm-linux-user --extra-cflags=-O3 --extra-cxxflags=-O3 --extra-ldflags=-O3
解决方案
我不确定 -O3 是否是个好主意——您可以检查 Ubuntu 软件包构建是否使用它;我怀疑它使用默认的 -O2 代替。事实上,一个好的第一步是在不做任何更改的情况下构建 Ubuntu 包(即使用 'apt source qemu' 获取包源并将其构建为 Ubuntu 包)并检查它是否具有与您看到的相同的性能提供二进制版本。
如果您构建的软件包的性能与 Ubuntu 构建的二进制文件不同:那么就会发生一些奇怪的事情,您需要对其进行调查。
如果您构建的软件包确实与 Ubuntu 构建的二进制文件具有相同的性能(即比您现在构建的任何东西都好):那么区别在于 Ubuntu 打包如何配置 QEMU,或者在构建环境中它是使用,或者在它正在使用的某些补丁中,这些补丁不在您当前正在构建的分支中。您可以尝试缩小差异。
除此之外,一般注意事项是 2.11 现在是 QEMU 的一个相当旧的版本,并且自 2.11 以来上游已经有了性能改进。但它们不是 20-40 倍,因此您绝对应该首先尝试确定为什么您没有获得与 Ubuntu 软件包二进制文件相同的性能。
推荐阅读
- html - 单击 iframe 内的任何链接时未显示浏览器默认加载程序图标
- three.js - gltfLoader vertexColors 问题
- bash - LFTP 镜像摘要作为输出
- css - 伪类和伪元素在 postcss 的嵌套样式中不起作用
- vue.js - spreadjs的图标和一些按钮不起作用
- c# - 理论上按顺序执行 Xunit 测试(非并行)
- python - 重复一列中的值以填充该列中的空单元格
- arrays - 以角度获取动态嵌套复选框的值
- android - 为什么 AppBarLayout 底部内容被截断?
- c# - 错误!join 子句中的表达式之一的类型不正确。调用“GroupJoin”时类型推断失败