Visual Studio: significant performance difference on VMware Fusion vs Bootcamp?

45,403

Solution 1

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

Solution 2

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

Solution 3

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)

Solution 4

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.

Solution 5

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.

Share:
45,403

Related videos on Youtube

quack quixote
Author by

quack quixote

Updated on September 17, 2022

Comments

  • quack quixote
    quack quixote over 1 year

    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?

    • brandstaetter
      brandstaetter over 14 years
      You should wait with installing Windows 7 via Boot Camp; official support by Apple will come soon, but currently it's buggy.
    • SLaks
      SLaks over 14 years
      I'm running Windows 7 on boot camp right now, and I haven't seen any bugs.
    • TFM
      TFM almost 13 years
      Isn't it obvious? Running Windows natively vs. on a virtual environment where all access to hardware is via another layer of software?
  • Martin Marconcini
    Martin Marconcini over 14 years
    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).
  • Martin Marconcini
    Martin Marconcini over 14 years
    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” ?
  • Mark Thalman
    Mark Thalman over 14 years
    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.
  • Jineesh
    Jineesh over 14 years
    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.
  • Brian Reiter
    Brian Reiter over 11 years
    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.
  • 3Dave
    3Dave over 11 years
    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.
  • tofutim
    tofutim over 10 years
    Huge slowdown with VMWare shared folders.
  • bouke
    bouke over 8 years
    Major slowdown using VMware Shared Folders. Both for build times and running unit tests.
  • Daniel
    Daniel over 6 years
    Imagine running this dev stack with 2Gb of RAM now...