在 OS X 中开发 WPF 应用程序的最佳 VM 是什么?

在 OS X 中开发 WPF 应用程序的最佳 VM 是什么?

我的所有机器都是 Mac(Mac Pro、MacBook Pro、MacBook Air 和 Mac Mini(还有 Apple TV 2.0!:)),但我的日常工作是开发 .NET/WPF 应用程序。通常我只需启动 Boot Camp 并以此方式进行开发,这当然很好,但有时我需要同时处理 Mac 端的事情,所以我购买了 VMware 3.1 和 Parallels 6。两者都可以运行,但是,即使在我花钱升级到更好的显卡(我认为是 NVidia 8600s,而不是普通的 ATI 卡)的 Mac Pro 上,WPF 性能仍然很差!!

现在这让我很困惑,因为两者都宣称它们不仅支持硬件加速的 OpenGL 2.1,还支持硬件加速的 DirectX 9(据称 VMware 甚至支持 DirectX 10!),通过各自的虚拟驱动程序,两者都可以很好地运行 3D 游戏,即使在窗口中也是如此。但即使是调整具有平铺背景的 WPF 窗口大小这一简单操作也会导致一些可怕的重绘和调整大小行为。它非常接近您对 RDP 的期望,更不用说纯软件渲染器了(完全忘记加速硬件!)

那么... 有人能告诉我 WPF 到底做了什么不同的事情吗?更重要的是,我如何才能提高 WPF 的性能?我是否应该切换到也支持 DirectX 的 VirtualBox?或者我是否只需要“咬”子弹(对不起...不得不这样做。所以我喜欢双关语!感谢 Jon Stewart!)并继续使用 Boot Camp?

答案1

我知道 VMWare 有某些扩展或驱动程序,您可以安装它们来提高性能;试试这些。作为虚拟机的广泛用户,它们的性能无法与本机速度相匹配;习惯就好。我尝试在虚拟机中编程,然后我厌倦了它,又买了另一台电脑,一台用于 Windows,一台用于 Linux。

答案2

尝试这个 !!

在虚拟机上安装并玩任何一款最新的 PC 游戏(使命召唤、NFS 等),因为几乎所有 PC 游戏都使用 DirectX。这些游戏也是对您的硬件和底层软件的完美测试。

如果游戏体验不好,那么 VMWare/硬件应该存在一些问题。如果不是,那么很可能是 WPF 本身的问题。我记得在某处读到过 WPF 在 Citrix 环境下存在一些已知的性能问题。因此,您遇到的问题也可能与此有关。

答案3

我认为这里存在对 VM 技术的根本误解。VM 永远无法完全将信息传递到物理硬件,中间必须有一个层。当您“运行” DX 应用程序时,它们会在虚拟显卡上运行,如果您幸运的话,其输出会通过硬件加速(因此直接 X -> 虚拟显卡 -> opengl-> 实际显卡),或者如果您不幸的话,会通过软件模拟(在这种情况下,所有内容都在 CPU 上运行,而 CPU 自然不会擅长此类任务 - 否则我们就不需要显卡了)。

简而言之,您的花哨硬件不会对虚拟机中的内容执行任何操作。双重启动实际上是利用视频卡的唯一方法。

答案4

我从事软件开发已有 27 年了。(是的,那时候只有文本和彩色 ASCII 字符……)

现在我是 Windows/Web/Mac 的高级开发人员,主要在 MacBook Pro(带有两个外接显示器 - DVI 和 USB)上进行编码。

虽然我 95% 的 WINDOWS 编码 (.NET) 都是通过 Fusion (VMWare) 上的 Windows 7 完成的。但我还有一个 100GB 的分区,里面有 BootCamp。

通过 BootCamp?您已经知道原因了,因为您无法通过 VM/模拟器获得完整的视频性能。

哦,还有重要提示 --- 不要通过 Fusion 启动 Windows 7 BootCamp,即使他们说可以。实际上,它会破坏 Windows 7 许可证,您将致电 Microsoft 重新注册(因为它会告诉您这是 Windows 的非法副本...)

相关内容