我最近为自己构建了一台半增强型 PC(Q9450、8GB DDR2 1066、1TB 硬盘、双 8600GT、Vista Ultimate 和双 22' 显示器),我正在评估我是否应该在 Vista 之上的 VPC/VMWare 会话上进行开发,或者不是?
我可以看到的一个好处是我可以在我的 Vista 笔记本电脑上运行相同的 VM,因此我的开发环境在我的任何机器上都是相同的。我还计划在年底之前购买 MBP。
在网上找到了几篇对这里有帮助的文章
任何其他想法将不胜感激?
我最近为自己构建了一台半增强型 PC(Q9450、8GB DDR2 1066、1TB 硬盘、双 8600GT、Vista Ultimate 和双 22' 显示器),我正在评估我是否应该在 Vista 之上的 VPC/VMWare 会话上进行开发,或者不是?
我可以看到的一个好处是我可以在我的 Vista 笔记本电脑上运行相同的 VM,因此我的开发环境在我的任何机器上都是相同的。我还计划在年底之前购买 MBP。
在网上找到了几篇对这里有帮助的文章
任何其他想法将不胜感激?
VM 的另一个优点是拥有干净的安装基础。除了开发之外,我还将台式机和笔记本电脑用于很多事情。您永远不知道您安装的软件何时会发生冲突,或者小调整以及您不玩的东西是否会破坏您的操作系统。重新安装/配置所有工具以使它们完全符合您的要求可能需要相当长的时间。如果您有开发 VM 映像的备份,您可以随意弄乱您的 PC,但仍然可以在不停机的情况下进行编码。它还允许您在您更喜欢 Linux 或 MacOS 的机器上运行 Win/Visual Studio/Etc。
您还可以制作同一图像的多个副本,并将每个副本用于单独的项目。
能够在笔记本电脑/台式机/服务器/远程连接之间进行转换,并且始终处于相同的环境中也非常有帮助。
对于 web 开发,我喜欢将服务器部分分离到一个 VM 中。我目前的设置是一台 Macbook Pro,里面有几个 Debian VM。我喜欢它的隔离方面。我可以在服务器上尝试新软件,如果出现问题,我可以将它们恢复。
我通过主机系统上的 Textmate 中的网络共享(samba)进行编程。
我发现的一个问题(至少在使用 VMWare Server 时)是,无论你的机器有多快,屏幕刷新率仍然在 ~30hz 左右。使用一段时间后,这会带来一点不愉快的体验。
我现在工作的地方是我的所有开发都使用 VM,因为我没有 XP 基础副本的管理员权限。
优点:我喜欢使用虚拟机,因为它给了你一些灵活性——你可以在机器之间切换——有程序在两者上运行并且有一个很酷的工作环境。
缺点:
您必须启动多个操作系统。这需要时间、内存和资源。
VM 上的剪贴板操作有时会很有趣。有时复制到剪贴板不起作用或在 VM 之间混淆。(使用 VMWare)。
当您插入 USB 驱动器和其他外部设备时,文件操作可能会很有趣。虚拟机有时看不到设备,有时会。
如果您的 VM 映像损坏 - 您可以轻松地丢失其中的所有内容......除非它被备份......
它非常适合展示开发演讲,您可以恢复到快照,每次都从完全相同的起点开始演讲。
我最近在 Linux 上使用 Windows XP vm 使用 Visual Studio 做一些工作,不知何故,制作 vm (vmware) 的人使 Windows 机器实际上运行得更快。我们做了一些时间测试以确保它不是主要的,但有一些东西(例如自动完成)确实弹出得更快。
很长一段时间以来,我们一直在开发非常早期的 Visual Studio 2005 版本以及随之而来的相关 .Net 位。为了保护我们的真实机器免受与预发布软件相关的各种问题,我们在虚拟机中完成了所有的开发工作。它工作得非常好。我一直在考虑回到那个模型,因为它使升级物理硬件变得轻而易举(更不用说通过更换整台机器更容易处理硬件故障):你只需复制 VM 映像。
在我当前的机器(4GB RAM 的 Core2Duo)上,运行一个 VM 时的性能下降几乎不明显。然而,运行两个虚拟机是很痛苦的。
我也无法弄清楚如何让 VMWare Server 在两台显示器上正常工作。
我不想在虚拟机中开发,而是在虚拟机中测试东西。例如,最好设置几个虚拟机来模拟 n 层架构,或者客户端-服务器设置,或者最后只是在多个操作系统上测试代码
如果您使用的是 Windows,Virtual PC 非常适合开发工作。VMWare 虚拟服务器并不是真正为用作桌面而设计的,长时间使用它会让您感到非常厌倦。Sun 的 VirtualBox 是与 Virtual PC 竞争的另一个选择。VMWare 有一个工作站产品,但它不是免费的。
通常,我在真实桌面(非虚拟)上进行开发,然后部署或测试到可以轻松快照和回滚的虚拟机。
如果要使用 VMWare,请在未来的 MacBookPro 上增加 RAM。我还没有(还),打开其他几个(mac 端)应用程序的性能确实开始变得迟缓。
一切顺利。
这取决于您正在开发什么以及使用什么语言。
VM 在磁盘访问上往往会受到相当大的打击,因此编译可能会显着减慢,尤其是对于大型 C/C++ 项目。不确定这是否是 .NET/Java 的问题。
如果您正在做任何图形密集型(3D、视频等)的事情,那么我也会避开虚拟机。
在家里进行开发时,我必须通过 VPN 进入我的公司才能使用 Intranet 上的协作工具。我还有一台台式机+笔记本电脑,它们通过 Synergy 连接在一起。
我遇到的问题是,我们的 VPN 软件希望事情如此安全,以至于它会强制所有网络路由通过 VPN 网关——即使我使用额外的 NIC 通过单独的专用网络将我的台式机和笔记本电脑联网。最终结果是我无法同时在我的台式机和笔记本电脑之间使用 Synergy 以及 VPN 进入我的公司。
一位同事向我建议的解决方案是在我的桌面上设置一个 VM 实例并将其用于我所有的 VPN 需求。奇迹般有效!
我不知道它作为开发平台是否如此有用,除非您正在做一些与您不想安装在常规工作机器上的软件相关的事情,或者需要解决您需要解决的某个事件可以定期重置。当您使用可能导致计算机崩溃的代码时,它也很方便,因为它至少只会使您的 VM 崩溃。
测试不同的配置和设置非常棒 - 与安装程序等一起工作,这就是我所关心的虚拟化真正闪耀的地方,能够在需要时回滚并重复运行东西对于识别非常有用在最终用户遇到问题之前解决问题。
根据在 Windows 7 上的 Ubuntu VM 中开发 Java 的个人经验,我发现这非常有效。主要是因为我的本地 IT 支持支持 Windows 7,所以我可以做一些事情,比如访问 Windows 中的所有本地文件共享和打印机,然后将我的 Ubuntu VM 配置为我心中的内容。
远程访问和桌面共享带来的巨大生产力优势。Windows 让我能够非常快速、轻松地使用 logmein.com 和 join.me 等工具从家里访问我的机器,并与公司中的其他人共享桌面上的虚拟机(两者都可以在几乎全屏的窗口中与虚拟机无缝协作) . Linux 不支持这些服务,我不想在 Ubuntu 上处理所有相关的 VNC/X 设置和网络配置。
我的机器相当强大。四核,16Gb RAM - 8Gb 用于 VM。VM 中的 Java 开发速度非常快。