我有一个 GUI 应用程序,我想通过在不同的 X 服务器中运行测试来并行测试它。为此,我使用 Xephyr 或 Xvnc 启动应用程序,然后启动脚本进行测试,它可以工作。
我遇到的问题是,当我在 Xephyr/Xvnc 中运行 GUI 应用程序时,它的 CPU 消耗非常高,因此由于 CPU 限制,我无法并行运行多个测试。
当我运行 gui 应用程序并使用 htop 检查 CPU 使用情况时,它显示 CPU% 约为 10 到 50%。当我使用 Xephyr 或 Xvnc 运行相同的应用程序时,它显示 CPU% 约为 200 到 250%(在 4 个 CPU 中)。
Xephyr/Xvnc 本身似乎并没有增加太多开销,但 GUI 应用程序在 Xephyr/Xvnc 服务器内运行时似乎消耗的 CPU 比正常情况多 5 倍。有原因/解决方案吗?
答案1
经过一番搜索,我找到了问题和解决方案。问题在于该应用程序使用了 Xephyr 不提供的图形加速。没有它,CPU 就会开始比平常做更多的工作。
解决方案是安装 virtualgl 并vglrun
在调用应用程序之前使用命令在 Xephyr 内运行该应用程序。