虚拟机上的.Net性能

虚拟机上的.Net性能,.net,c++,virtual-machine,.net,C++,Virtual Machine,我们需要开发一个应用程序,它将安装在运行Windows的虚拟机上 我们都知道.Net的性能与本机C/C++代码大致相同。对于虚拟机也是这样吗?我定期为我的Visual Studio开发运行虚拟机。IDE和程序的性能非常好。我在VirtualBox上运行Win7 x64,这非常好,因为即使我运行XP 32位作为我的主机操作系统,我也能获得64位操作系统的性能。。在虚拟机上运行的net应用程序与在同一虚拟机上运行的非.net应用程序的性能相当于在真实机器上运行的.net和非.net应用程序的性能比较

我们需要开发一个应用程序,它将安装在运行Windows的虚拟机上


我们都知道.Net的性能与本机C/C++代码大致相同。对于虚拟机也是这样吗?

我定期为我的Visual Studio开发运行虚拟机。IDE和程序的性能非常好。我在VirtualBox上运行Win7 x64,这非常好,因为即使我运行XP 32位作为我的主机操作系统,我也能获得64位操作系统的性能。

。在虚拟机上运行的net应用程序与在同一虚拟机上运行的非.net应用程序的性能相当于在真实机器上运行的.net和非.net应用程序的性能比较

我想说的是,通过在虚拟机上运行.net应用程序,它们与本机应用程序相比并没有多少缺点。如果您有两个应用程序(一个.net和一个本机),并且它们在真实PC上的性能相同,那么它们在VM上的性能将相同


然而,虚拟机的性能在很大程度上取决于您为其提供的资源。如果你给你的虚拟机足够的内存,并且不在主机操作系统上运行其他任何东西,你会发现虚拟机的性能非常好。(特别是如果您使用的是一种直接安装在金属虚拟机上的虚拟机,如vmware esx)。但是,如果您正在运行6个共享同一主机的虚拟机,和/或在主机上运行大量应用程序,请不要期望每个虚拟机都像本机一样运行。

如果您有一台强大的机器,您不会感觉到有什么不同 只要确保: A.已分配足够的内存。 B虚拟机硬盘驱动器与主机硬盘驱动器不同(如果您的机器有SAS,那么您就更幸运了) C您有足够的cpu/内核可用

您通常在VM中看到的性能下降是由于缺乏资源,而不是VM软件本身


如果您使用的代码使用的是使用显卡特殊功能的特殊渲染功能,则此处建议的情况可能会有所不同。

我也尝试过,不幸的是,在32位主机上运行64位来宾服务器时,只能分配1个CPU核。:(