我们需要开发一个将安装在运行 Windows 的虚拟机上的应用程序。
我们都知道 .Net 的性能与原生 C/C++ 代码差不多。虚拟机也是如此吗?
我们需要开发一个将安装在运行 Windows 的虚拟机上的应用程序。
我们都知道 .Net 的性能与原生 C/C++ 代码差不多。虚拟机也是如此吗?
我定期为我的 Visual Studio 开发运行 VM。IDE 和程序的性能非常好。我在 VirtualBox 上运行 Win7 x64,这很棒,因为即使我运行 XP 32 位作为我的主机操作系统,我也可以获得 64 位操作系统的性能。
与运行在同一 VM 上的非 .net 应用程序相比,在 VM 上运行的 .net 应用程序的性能相当于比较在真机上运行的 .net 和非 .net 应用程序。
我想说的是,通过在 VM 上运行 .net 应用程序,它们与本机应用程序相比并没有或多或少的劣势。如果您有 2 个应用程序(一个 .net 和一个本地应用程序),并且它们在真实 PC 上的性能相同,那么它们在 VM 上的性能相同。
但是,VM 的性能在很大程度上取决于您为其提供的资源。如果你给你的虚拟机足够的内存,并且不在主机操作系统上运行其他任何东西,你会发现虚拟机的性能非常好。(特别是如果您使用的是直接在金属上的 VM 之一,例如 vmware esx)。但是,如果您正在运行 6 个共享同一主机的 VM,和/或在该主机上运行大量应用程序,则不要期望每个 VM 都像本机一样执行。
如果您有一台强大的机器,您将不会感觉到差异只需确保:分配了足够的内存。湾。VM 硬盘驱动器与主机硬盘驱动器不同(如果您的机器有 SAS,那么您甚至会更幸运) c。你有足够的 cpu / 核心来备用。
您通常在 VM 中看到的性能下降是由于缺乏资源而不是 VM 软件本身。
如果您使用的代码使用了使用视频卡特殊功能的特殊渲染功能,那么这里建议的情况可能会有所不同。