虚拟化主要有几个形式:
macOS/Windows 都是常见的桌面操作系统. 评价一个桌面操作系统的流畅度主要有以下指标:
一般来说 1/2 两点上, macOS/Windows 都是半斤八两, KVM 的话在 Windows 可以 passthrough, 而 macOS 就必须得开 feature set, 会有一定损失, 但是由于可以启用到 Penryn (但是实际上可以开启 AVX 这类特性)从而在 macOS 强制关闭 PTI, 一定程度上能够改善系统性能.
图形刷新率主要就是依赖显卡驱动. macOS 上的桌面虚拟化平台主要就是 Parallel Desktop/VMware Fusion/VBox. PD 最贵, 但是他家的显卡 API 虚拟化性能最好, VMware 的虚拟化性能马马虎虎过得去, VBox 就比较垃圾一点. 不过多多少少都有 3D 加速. 外加 Windows 桌面本身系统没有那么吃 GPU, 哪怕没有 3D 加速依旧能用.
Windows 要虚拟化 macOS 也只能利用 VMware/VBox 的 VESA 2D 驱动, 换句话说完全没有 3D 加速, 而且 macOS 又是一个桌面很吃 GPU 的系统, 卡爆完全能够理解.
输入延迟方面 PD 这样的虚拟机做了很多深入的优化, 我记得 PD 是有个内核驱动获取 raw input 然后直接通进 windows 以改善性能. 所以能够勉强打游戏.
Windows 的话只有 VMware/VBox 的软件虚拟化, 而且还是没有深入调优的那种, 只能凑合日常使用.
当然 Hyper-V 本身支持 SR-IOV/PCIe 直通, 虽然不如 KVM/ESXi 那套直观. 然而如何虚拟 macOS 的那个 OSK string 就是一个问题, 毕竟 Hyper-V 官方的那个平台不支持. 虽然说你可以通过 VMware/VBOX 换为 Hyper-V 的后端, 但是没人试过在这种情况下直通.
所以要流畅虚拟机, 就搞个 RX470, 最好有独立的 USB 控制器(ASMedia 就行, 或者把宿主的 Intel XHCI 控制器直接通进去), 这样就有流畅的 macOS 虚拟机了.
参见