【问题标题】:Pros and Cons of Developing on a VM on a PC在 PC 上的 VM 上进行开发的优缺点
【发布时间】:2010-09-15 02:45:19
【问题描述】:

我最近为自己构建了一台半增强型 PC(Q9450、8GB DDR2 1066、1TB 硬盘、双 8600GT、Vista Ultimate 和双 22' 显示器),我正在评估是否应该在 VPC/VMWare 会话上进行开发Vista 与否?

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

在网上找了几篇半求助的文章Here

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

【问题讨论】:

    标签: development-environment virtual-machine environment


    【解决方案1】:

    对于网络开发,我喜欢将服务器部分分离到一个虚拟机中。我目前的设置是一台 Macbook Pro,里面有几个 Debian VM。我喜欢它的隔离方面。我可以在服务器上试用新软件,如果出现问题,我可以将其恢复。

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

    【讨论】:

      【解决方案2】:

      VM 的另一个优势是拥有干净的安装基础。除了开发之外,我还将台式机和笔记本电脑用于很多事情。您永远不知道您安装的软件何时会发生冲突,或者小调整以及您不玩的东西是否会破坏您的操作系统。重新安装/配置所有工具以使它们完全符合您的要求可能需要相当长的时间。如果您有开发 VM 映像的备份,您可以随意弄乱您的 PC,但仍然可以在不停机的情况下进行编码。它还允许您在您更喜欢 Linux 或 MacOS 的机器上运行 Win/Visual Studio/Etc。

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

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

      【讨论】:

        【解决方案3】:

        我发现的一个问题(至少在使用 VMWare Server 时)是,无论你的机器有多快,屏幕刷新率仍然在 ~30hz 左右。使用一段时间后,体验会有些不愉快。

        【讨论】:

          【解决方案4】:

          我现在工作的地方是我的所有开发都使用虚拟机,因为我没有 XP 基础副本的管理员权限。

          优点: 我喜欢使用虚拟机,因为它为您提供了一些灵活性 - 您可以在机器之间切换 - 有程序在两者上运行并且有一个很酷的工作环境。

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

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

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

          如果您的 VM 映像损坏 - 您可以轻松地丢失其中的所有内容......除非它被备份......

          【讨论】:

            【解决方案5】:

            它非常适合展示开发演讲,您可以恢复为快照,每次都从完全相同的起点开始演讲。

            【讨论】:

              【解决方案6】:

              如果要使用 VMWare,请在未来的 MacBookPro 上增加 RAM。我还没有(还),打开其他几个(mac 端)应用程序的性能确实开始变得缓慢。

              一切顺利。

              【讨论】:

                【解决方案7】:

                我最近在 Linux 上使用 Windows XP vm 使用 Visual Studio 进行了一些工作,不知何故,制作 vm (vmware) 的人使 Windows 机器实际上运行得更快。我们做了一些时间测试以确保它不是主要的,但有一些东西(例如自动完成)确实弹出得更快。

                【讨论】:

                  【解决方案8】:

                  如果您使用的是 Windows,Virtual PC 非常适合开发工作。 VMWare 虚拟服务器并不是真正为用作桌面而设计的,长时间使用你会感到非常厌倦。 Sun 的 VirtualBox 是与 Virtual PC 竞争的另一个选择。 VMWare 有一个工作站产品,但它不是免费的。

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

                  【讨论】:

                    【解决方案9】:

                    很长一段时间以来,我们一直在开发非常早期的 Visual Studio 2005 版本以及随之而来的相关 .Net 位。为了保护我们的真实机器免受与预发布软件相关的各种问题,我们在虚拟机中完成了所有的开发工作。它工作得非常好。我一直在考虑回到那个模型,因为它使升级物理硬件变得轻而易举(更不用说通过更换整台机器更容易处理硬件故障):你只需复制 VM 映像。

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

                    我也不知道如何让 VMWare Server 在两个显示器上正常工作。

                    【讨论】:

                      【解决方案10】:

                      我不想在 VM 中进行开发,而是在 VM 中进行测试。例如,最好设置几个虚拟机来模拟 n 层架构,或者客户端-服务器设置,或者最后只是在多个操作系统上测试代码

                      【讨论】:

                        【解决方案11】:

                        这取决于您正在开发什么以及使用什么语言。

                        VM 往往会在磁盘访问方面受到相当大的打击,因此编译速度可能会显着降低,尤其是对于大型 C/C++ 项目。不确定 .NET/Java 是否会出现这样的问题。

                        如果您正在做任何图形密集型的事情(3D、视频等),那么我也会避开虚拟机。

                        【讨论】:

                        • 添加第二个专用且“原始”连接到 VM 映像的驱动器将允许本机读/写速度 - 但需要专用驱动器/分区。
                        【解决方案12】:

                        我不知道它作为开发平台是否如此有用,除非您正在做的事情与您不想安装在常规工作机器上的软件相关联,或者需要解决您遇到的特定事件需要能够定期重置。当您使用可能导致计算机崩溃的代码时,它也很方便,因为它至少只会让您的虚拟机崩溃。

                        它非常适合测试不同的配置和设置——与安装程序一起工作等等,这就是我所关心的虚拟化真正闪耀的地方,能够在需要时回滚并重复运行东西真是太棒了有助于在最终用户遇到问题之前识别问题。

                        【讨论】:

                          【解决方案13】:

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

                          我遇到的问题是,我们的 VPN 软件希望事情如此安全,以至于它会强制所有网络路由通过 VPN 网关——即使我使用额外的 NIC 来通过单独的私有网络连接我的台式机和笔记本电脑网络。最终结果是我无法同时在我的台式机和笔记本电脑之间使用 Synergy 以及 VPN 进入我的公司。

                          一位同事向我建议的解决方案是在我的桌面上设置一个 VM 实例,并将其用于我的所有 VPN 需求。像魅力一样工作!

                          【讨论】:

                            【解决方案14】:

                            根据在 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 开发速度非常快。

                            【讨论】:

                              猜你喜欢
                              • 2011-01-12
                              • 2011-12-02
                              • 2011-01-16
                              • 1970-01-01
                              • 2017-05-25
                              • 2011-06-12
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多