在PC上的VM上进行开发的利弊

时间:2020-03-06 15:04:57  来源:igfitidea点击:

我最近为自己打造了一个半增强型PC(Q9450、8GB DDR2 1066、1TB HDD,Dual 8600GT,Vista Ultimate和Dual 22'Monitors),并且我正在评估是否应该在Vista之上的VPC / VMWare会议上进行开发,不是?

我看到的一个好处是,我可以在Vista笔记本电脑上运行相同的VM,因此我的开发环境在任何计算机上都相同。我还计划在年底之前购买MBP。

在网上找到了几篇对这里有帮助的文章

任何其他想法将不胜感激?

解决方案

如果将使用VMWare,请在将来的MacBookPro上增加RAM。我还没有,打开的其他几个(Mac端)应用程序的性能真的开始变得迟钝了。

一切顺利。

演示开发演讲非常有用,我们可以还原为快照,每次都从完全相同的起点进行演讲。

我最近在Linux上使用Windows XP vm在Visual Studio上进行一些工作,而制作vm(vmware)的人以某种方式使Windows计算机运行得更快。我们进行了一些时间测试以确保它不是主要的,但是确实有一些事情(例如自动完成)的弹出速度更快。

这取决于我们正在开发什么以及使用哪种语言。

VM往往会对磁盘访问造成很大的冲击,因此编译可能会大大减慢速度,尤其是对于大型C / C ++项目。不知道这是否会是.NET / Java的问题。

如果我们要执行图形密集型的任何工作(3D,视频等),那么我也将避免使用VM。

我发现的一个问题(至少在使用VMWare Server时)是,无论计算机多快,屏幕刷新率仍约为30hz。使用一段时间后,这会给用户带来不愉快的体验。

我不知道它是否对开发平台有用,除非我们正在做的事情与我们不想在常规工作计算机上安装的软件绑定在一起,或者需要解决某个需要解决的特定事件能够定期重置。当我们使用有可能导致计算机崩溃的代码时,它也很方便,因为它至少只会使VM崩溃。

对于测试不同的配置和设置,以及与安装程序一起使用等方面而言,这是非常出色的,这对我而言,虚拟化的真正意义在于,能够在需要时将其回滚并反复运行,这对于之前发现问题非常有用。最终用户会遇到他们。

对于Web开发,我喜欢将serverpart分离到VM中。我当前的设置是内置有多个Debian VM的Macbook Pro。我喜欢它的隔离性。我可以在服务器上尝试使用新软件,并可以在出现问题时将其还原。

我通过主机系统上Textmate中的网络共享(samba)进行编程。

如果我们使用Windows,则Virtual PC非常适合开发工作。 VMWare Virtual Server并不是为用作台式机而设计的,长时间使用它会使我们感到非常厌倦。 Sun的VirtualBox是与Virtual PC竞争的另一种选择。 VMWare有工作站产品,但它不是免费的。

通常,我在真实桌面(非虚拟)上进行开发,然后将其部署或者测试到虚拟机上,从而可以轻松快照和回滚。

我现在在哪里工作,所有开发都使用VM,因为我没有XP基本副本的管理员权限。

优点:
我喜欢使用VM,因为它为我们提供了一些灵活性,我们可以在具有运行程序的计算机和运行良好环境的计算机之间进行切换。

缺点:
我们必须启动多个操作系统。这需要时间,内存和资源。

VM上的剪贴板操作有时会很有趣。有时,复制到剪贴板不起作用或者在虚拟机之间混淆。 (使用VMWare)。

插入USB驱动器和其他外部设备时,文件操作可能会很有趣。 VM有时看不到设备,有时却看不到设备。

如果VM映像损坏,则可以轻松地释放其中的所有内容....除非已备份.....

VM的另一个优点是安装基础干净。除了开发之外,我还使用台式机和笔记本电脑进行许多其他工作。我们永远不会知道所安装的软件何时会发生冲突,或者小小的调整和我们所玩的东西是否会浪费操作系统。重新安装/配置所有工具,使它们恰好是我们要它们花费大量时间的方式。如果我们有开发VM映像的备份,则可以随意破坏PC,但仍然可以在不停机的情况下进行编码。它还允许我们在不希望使用Linux或者MacOS的机器上运行Win / Visual Studio / Etc。

我们还可以制作同一张图像的多个副本,并将每个副本用于一个单独的项目。

能够在笔记本电脑/台式机/服务器/远程连接之间转换,并始终处于同一环境中也很有帮助。

在家里进行开发时,我必须将VPN接入我的公司才能使用Intranet上的协作工具。我还有一台台式机和笔记本电脑,它们通过Synergy连接在一起。

我的问题是我们的VPN软件希望事情变得如此安全,以至于即使我使用其他NIC通过单独的专用网络将台式机和笔记本电脑联网,它也会强制通过VPN网关进行所有网络路由。最终结果是我无法在台式机和笔记本电脑之间同时使用Synergy和VPN进入我的公司。

一位同事向我建议的解决方案是在桌面上设置一个VM实例,并将其用于我的所有VPN需求。奇迹般有效!

长期以来,我们一直在开发非常早期的Visual Studio 2005版本以及与之相关的.Net位。为了保护我们的真实计算机免受与预发布软件相关的各种问题的影响,我们在虚拟机内部进行了所有开发工作。它运行得非常好。我一直在考虑回到该模型,因为它可以轻松升级物理硬件(更不用说通过更换整个计算机就可以更轻松地处理硬件故障):我们只需复制VM映像即可。

在我当前的机器(具有4GB RAM的Core2Duo)上,运行一个VM时的性能下降几乎不明显。但是,运行两个虚拟机很麻烦。

我也无法弄清楚如何使VMWare Server在两个监视器之间正常工作。

我不想在VM中进行开发,而不必在VM中进行测试。例如,最好设置几个虚拟机以模拟n层体系结构,或者客户端-服务器设置,或者最终只是在多个OS上测试代码