16

I've just purchased a new MacBook Pro and was looking at installing Windows 7 via Bootcamp, so that i can do Visual Studio development work, but i was thinking it would make more sense to move my non development stuff (email etc) to the Mac and launch Windows 7 via VMWare Fusion. Im also looking at doing iPhone development as well so was wondering if that made more sense?

Has any one had any experience in or run into problems developing in Visual Studio 2008/2010 beta on Windows 2007 (64 or 32 bit) running on VMWare Fusion? Or is the performance that much worse that a dual boot option is the better way to go?

3
  • You should wait with installing Windows 7 via Boot Camp; official support by Apple will come soon, but currently it's buggy. Oct 23, 2009 at 12:24
  • 2
    I'm running Windows 7 on boot camp right now, and I haven't seen any bugs.
    – SLaks
    Oct 23, 2009 at 13:27
  • 1
    Isn't it obvious? Running Windows natively vs. on a virtual environment where all access to hardware is via another layer of software?
    – TFM
    Jul 6, 2011 at 12:07

9 Answers 9

20

I know this question does not explicitly mention Parallels, but maybe some of my settings/experience there will be transferable to settings with VMWare Fusion. I am running a MacBook Pro running on OS X 10.7.3 with an Intel Core i7 2.2GHz and 8 GB 1333 MHz DDR3 memory for my RAM. The version of Parallels I am using is Parallels 7.

Some important notes before I go into my configuration:

  • I am a developer with MSDN access. Under my MSDN account, I have access to Office 2010 including the Mac version (I mention this as, in many cases, Office will be a necessity and therefore an important consideration - while I could install both, there's also the cost in disk space). This also meant that cost was less of a concern here as I had access to everything I needed via MSDN.

  • One other thing I should note is that I would not recommend converting a VMWare virtual machine to a Parallels virtual machine as I experienced several issues with this and ended up doing a clean install.

  • I am developing on both my Mac (via Eclipse and Aptana) and Windows 7 VM (via Visual Studio)

So after about 1 month of configuring my VM, I've come down to a pretty nice configuration where I am experiencing very smooth performance. I have been very happy with this configuration and it's quite convenient over the alternative of rebooting to get to my Windows machine. Below I will address the Parallels settings that I feel have made this successful in addition to the software I am using on the VM, some important items regarding Windows 7 settings and a $1 program I would suggest every Mac owner would benefit from (but really a necessity for anyone using a VM on a Mac):

VM software:

  • Windows 7 Ultimate x64
  • Visual Studio 2010 Premium w/ plenty of Add-ins such as ReSharper, Mindscape Workbench, NuGet, etc...
  • SQL Server 2008 R2
  • Expression Blend 4
  • Daemon Tools
  • Charles Proxy (I would highly recommend this over, or at least in addition to, Fiddler if you are going to be developing on both your Mac and PC - opt-in feature for SSL debugging is very nice - I had to install on both my VM and Mac ... 127.0.0.1 does not resolve to the same place on my Mac and VM)
  • IMPORTANT - I have ensured that no services are running at startup via Start->Run-> 'msconfig' - I tend to like using databases like MongoDB and Neo4j and I usually run them as services as this is generally how I will use these databases in production so this could potentially be a bit of a pain to manage if I end up running these on my Windows box (depending on the production settings I'm trying to emulate)

VM settings:

General

  • CPUs: 4 (out of 8)
  • Memory: 3072 MB (out of 8 GB)

Options

    Optimization
  • Performance: Faster Mac (this may not be intuitive, but I've found it has helped eliminate bottlenecks that result in a noisy system and potential overheating issues)
  • Enable Adaptive Hypervisor: true
  • Tune Windows for speed: true
  • Power: Longer battery life (otherwise I run into overheating issues)
  • Free Space: Automatically compress virtual hard disks: true (this hasn't caused any performance issues for me, so I have kept this on)

    Security
    
  • All options set to false, Encryption is not on, Undo Disks is set to Disable

    Applications
    
  • Pause Windows when no applications are open: true
  • Web Pages: Open in mac
  • Email: Open in mac

    Coherence
    
  • Use Crystal Mode: true
  • Show Windows notification area in menu bar: false
  • Allow applications to switch to full screen: true
  • Disable Windows Aero: false (you'll get better performance if you disable this, I'm just a very visual person and decided I like to keep Aero on in Coherence mode)

    Full Screen
    
  • Use Mac OS X Full Screen: true

    Advanced
    
  • SmartMouse: Auto

Hardware

    Video
  • Video Memory: 512 MB (out of 1 GB)
  • Enable 3D acceleration: true
  • Enable vertical synchronization: true

Mac Software

  • Free Memory Pro: Macs have been known to do a terrible job at managing unclaimed memory. At some points I am running my VM (automatically takes up 3 GB with my config so long as an application is running), two instances of Eclipse (different configurations), Aptana, several browser sessions, several terminal sessions, my VPN and my Office applications. At this point my memory may be running around 50-200 mb - I've found if I use Free Memory Pro to clear up my memory once or twice per day that my Mac still runs without ANY excessive noise or heat and stays around 1.2 GB of free memory even with all the above mentioned applications being open :) IMHO, Macs should come with this program for free, but the next time you're on a late night trip to Wendy's...just forgo one of those $1 menu 5 piece nuggets and buy this program instead - it's totally worth it
9

I've used a Win7 virtual machine on VMware Fusion 3.0, on both a Mac Pro and a MacBook Pro. I haven't had any performance problems, the virtual machine performance on both systems was very good. I had the best results with Win7 when I configured the virtual machine to have 1 GB of RAM. (Full disclosure: I work on VMware Fusion.)

I haven't personally tried to run Visual Studio in a VM but people who have done so have told me that, as long as the source code you are compiling is stored on the virtual hard disk, build times are good, although they are slightly slower than native performance.

I have heard that storing the code on a "network" drive (either an HGFS share or an NFS/CIFS share on the host, accessed via a virtual ethernet device) is a bad idea. Apparently the build performance is pretty bad in this configuration.

Hope this helps!
Jason

3
  • 4
    In my current project VS2012, Win2012, VMWare Fusion 5.0.1 with OS X 10.8.2: 9 sec to build on virtual disk, 18 sec using Apple SMB, 50 sec using VMWare shared folders. Oct 29, 2012 at 13:01
  • 2
    Huge slowdown with VMWare shared folders.
    – tofutim
    Jan 13, 2014 at 18:04
  • Major slowdown using VMware Shared Folders. Both for build times and running unit tests.
    – bouke
    Nov 11, 2015 at 10:52
4

I convinced my work a while back to get me a Mac Pro instead of the intended, comparable, Lenovo (they bought in on the whole idea because it ended up being about $800.00 cheaper, macs aren't always the most expensive :) )

I'd been using Fusion over Parallels, due to my original experience with the early versions. I have a Windows 7 x64 VM that I use for Visual Studio, and offload everything else that I can to the OS X. It had been working great. VS2008 loaded up quick, builds where quick etc. etc.

Lately I've been using VS2010 and I've noticed a significant performance hit. I decided to give Parallels another go due to all of the latest reviews about performance with version 5. Both Parallels and Fusion work great, but there is a very noticeable performance difference with VS2010 on Parallels vs Fusion.

So to your original question I think you'd be good just virtualizing Windows for development, if you can offload much of your other work onto OS X. Performance has come a long way with Fusion/Parallels and it's a pain to continually reboot to switch your OS for the performance bump. If you're using VS2010 I might recommend Parallels right now simply because of slowdown you get with Fusion. (I think this may be related to VS2010 using WPF which may be faster inside Parallels)

1
  • This is an old thread, but part of the performance difference may be due to the use of hardware acceleration (UI) in VS2010. Works GREAT under windows, but VMs (Whether Fusion, Parallels or VirtualBox) aren't very good at GPU acceleration. You can disable that in VS2010/2012; haven't personally tried it but might be worthwhile.
    – 3Dave
    Jan 2, 2013 at 20:25
2

I've done both, using Win7 betas, and ultimately preferred using Boot Camp. Admittedly, this is on a 13" MacBook Aluminum (the model issued late in 2008) with 2GB of RAM.

VMWare performance was quite good, and very impressive, but because my dev stack didn't have full reign of the machine, it felt just pokey enough to annoy me. (Understand that my dev stack was a touch more than VS -- I had VS, SQL Express, CruiseControl.NET, etc.)

I felt the performance under Boot Camp was considerably better -- but this is to be expected, as you're talking about native performance. Boot Camp reboots you into Windows, whereupon Windows is the only OS running, and has full access to the machine.

Naturally, your mileage may vary, and performance is much more in the "feel" than the metrics. You may find VM performance perfectly dandy. You may find it a bit pokey. You may find that it's good enough given that it doesn't require a full reboot and you can still run your Mac apps alongside the Windows environment. You may prefer the reboot method. Only you can make the final trade-off determination.

1
  • Imagine running this dev stack with 2Gb of RAM now...
    – Daniel
    Jan 3, 2018 at 12:05
1

If I'm doing something quick I run Windows from my BootCamp partition using VMWare Fusion 2.0.6. If I'm going to be doing some serious debugging or fixing I reboot using BootCamp. BootCamp is much faster, but if most of my time is going to be spent rebooting twice I'll opt for Fusion.

On the down side, Fusion doesn't see all of the cores my Mac Pro (I can only assign up to 2 cores to it when I'd happily assign 4-6 processors.) so using BootCamp definitely maximizes the resources XP has access to.

2
  • Fusion 3 will see all your cores. Tho Parallels 5 has proven to be considerably faster on my Mac Pro with 8 cores and 10gb. Visual Studio 2008 compiles faster and GDI+ is noticeably faster than under VMware 3. For what is worth, I’ve been using both products since their initial releases. Last year and a half I used VMware 2.x over Parallels. I think that I’m going back to parallels. Feels less buggy this time. (VMware + Unity + Expose == fail, try it). Nov 13, 2009 at 12:17
  • Fusion 3 only allows me to use four core on my bootcamp partition and the other Fusion files it only allows two cores. Either way fusion is too slow to be useful. The only way I was able to get the work done I needed to yesterday was to run in bootcamp. I moved from Parallels last year because of a showstopper that forced me to boot into bootcamp. I hate spending any money on Windows at all and I really dislike having to update two windows emulators. I'll probably just submit a request for a real PC to IT to take care of my Windows work and keep my Mac Pro uncontaminated. Nov 13, 2009 at 13:39
0

I cannot comment on Windows 7 (or even Vista) running on Fusion but I did use Visual Studio 2008 on Win XP inside Fusion and it ran great, even on just a MacBook. I don't want to be the guy asking why you want to do that but... why do you need to have Win7 as opposed to XP?

The main reason I went with XP versus Vista was extra burden Vista (and Win7) put on the graphics card, memory, and the hard disk. Now you'll obviously be in a better position with a MacBook Pro and its additional graphics capabilities; but there is no way around the additional memory and copious amounts of random HD access that Vista and Win7 impose. Yes, you can turn off many of the features that cause the memory and disk usage but even then the tax seems to be higher than it was in XP. Enough about "why Win7".

From a performance perspective you'll want to have lots of RAM and a fast HD. I upgraded to 4GB and a nice 7200rpm HD and my performance was great (often better than running native on an aging Athlon dual-core machine). The ability to run VS and still use all my favorite mac programs is something I still miss (I no longer have the MacBook) and I'd highly recommend that setup.

0

I have used Vista 64 + Visual Studio 2008 in both BootCamp and VMWare Fusion modes and both perform well. If I was "playing around" with some code and not coding intently I could do it in Fusion without any significant performance hit. If I was focusing on my code and needed to get something done, I would reboot into BootCamp mode. This not only ensured that all my resources were dedicated to Vista/Visual Studio, it also helps ensure that nothing in Mac-Land would distract me from working.

Important

The biggest tip I can give you though is if your MBP has dual video cards, and you boot into Windows using BootCamp, Windows will use the more powerful video card. This creates additional heat and your MBP will start to warm up. Normally in Mac-Land the fans will speed up to compensate but in Windows-BootCamp there is nothing to tell the fans to speed up and your MBP will start getting VERY warm.

There is a simple solution that works well though. In Mac-Land, look for an app called SMC Fan Control (you can find it on macupdate.com). Install it and before you boot into Windows using BootCamp, go to Mac Preferences, find SMC, and default your fans to spin at something like 4500 rpm. It will make a bit more noise but will still be reasonably quiet. Now, do not shutdown OS-X, do a Restart, hit the BootCamp key at the right time and go into Windows. By performing a Restart the fan controller on the motherboard will still think it needs to spin the fans at the new setting and it will continue to do so until you shutdown the MBP completely or reboot to OS-X and change the setting down to a slower speed (I run about 1300 normally). This makes development from the couch in BootCamp much more enjoyable as you won't find your clothes being ironed while you develop.

2
  • I’ve never used bootcamp with either VMware or Parallels, but I understand that each will install the tools. What happens if you boot natively on boot camp? won’t the tools “bother” ? Nov 13, 2009 at 12:18
  • 1
    I had no issues with the VMWare tools when running in bootcamp mode. IIRC you have multiple network adapters and it uses one or the other depending on the boot mode. No issues running in both modes though. Dec 16, 2009 at 2:48
0

While I cannot speak to running Windows or Visual Studio in a VM on a Mac in Fusion, I can speak to the part about iPhone development (which requires Xcode and Mac OS X) in a Parallels VM.

iOS Development

I do iOS development with Xcode running in a Parallels (9, 10, and 11) virtual machine on a MacBook Pro Retina with terabyte flash drive.

Generally this works very well. The biggest plus having all my work-related stuff in one single environment. Specifically, Apple stores security keys in the Keychain. Trying to extract that from a real Mac and re-install on another is a mystery and a pain. With a VM, I make occasional manual backups locally and/or to an external drive. Getting a new Mac, or switching to another Mac just means one big file copy, then I'm up and running.

I even use the Notes app and Reminders app within that VM for my development work. I do not activate iCloud within that VM, so it just stays local to the VM.

With Mountain Lion running as the Guest OS in the virtual machine worked so well that I found myself getting confused about when I was in the real Mac and when I was in the virtual Mac. In the VM, I had to switch my Dock to the right-side of the screen to differentiate from the real Mac’s left-side Dock.

I am sure there is some performance penalty when running in the VM, but it went unnoticeable to me. I imagine the speedy flash drive saves so much time that it more than makes up for any overhead of running the VM. Overall, this is the fastest development environment I have ever used. With Mountain Lion, that is… read on.

CAVEAT: Mavericks, Yosemite, and El Capitan run noticeably slower as a guest VM. I have confirmed that in the latest and prior versions of both Parallels and Fusion, neither product makes graphics hardware acceleration available to Mac OS X as a guest OS. They do for Windows as a Guest OS, but not for Mac OS X (ironically).

So everything graphical runs slower. Menus drop down slower, and as you drag your mouse pointer through the menus items, they highlight and draw more slowly. Moving windows is not quite immediate. Animations can be herky-jerky. Scrolling is kind of hyper-active, a series of small visual updates rather than smooth. All-in-all, it is not a show-stopper for me, at least not yet. (I've only recently updated the VM from Mountain Lion.)

Why was Lion and Mountain Lion so performant visually while the later Mac OSes are slow? From what I learned in a brief tech note and email from Parallels company, Apple provided a shim with Lion/Mountain Lion. They had some library that helped to substitute for the lack of graphics hardware acceleration. This library is no longer available with the place-named OS X versions, only with the feline-named OS X versions.

-1

While it does work, there are some gotchas with the VMWare Fusion 3 + Bootcamp usage.

Mainly the authentication of Win7 needs to be done over the silly MS phone system. Otherwise authentication is only valid on one side (native boot or VMWare).

Also, the hard disk seems to blink rather long after a Win7 VMWare boot but maybe that's "normal".

Have min.4GB of physical memory - works with 2GB but is dead slow. My current VM setup is 1420MB and 2 cores for VM. That ends up using around 2GB of memory for VMWare altogether (leaving another 2GB for my OS X host).

You must log in to answer this question.