Developing .NET on a 2011 MacBook Pro via Windows 7 VMWare Fusion Virtual Machine

6

1

I can't seem to find a duplicate question, so please excuse (and redirect) me if this question has already been asked.

I just recently got a 2011 MBP. I am a .NET developer, and as such, am totally reliant on Visual Studio 2010, IIS 7.5, SQL Server 2008 R2, etc. I would like to be able to run Windows 7 on my MacBook as a VM, and avoid running bootcamp if possible (I have done this for years and would like to try another way).

I am planning on installing 8 GB of RAM and also swapping my superdrive for an SSD using either an OptiBay or an OWC Data Doubler. I am thinking I can get some nice performance with the VM if it is located on the SSD. I have heard that it is good practice to have a VM on a separate drive as the host OS, so I plan on leaving OSX installed on the HDD that came with the computer.

Has anyone tried this? I am very curious what your results have been. I have Googled with a gajillion different search term combinations, but haven't found anyone's personal experience doing this. Again, if you've done this, please let me know if the VM ever came close to performing as well as it would if running natively on an HDD. And if this idea of mine is stupid, or there is a better way to use the SSD, educate me!

Thanks!


20110607 - This post also has some good relevant information: VMWare Fusion - Which runs better, Windows 7 vs XP? 32bit or 64bit?. I'm still waiting on the SSD, etc.... I'll update this post with my experience then.


20110711 - I installed the SSD! I moved all but my users folder in OSX to the SSD, and I am also hosting the Windows 7 VM on the SSD as well. Still have 60 GB of the 115 GB left on the SSD, so looking good space wise. Performance? Here are the raw numbers.... (I am quite pleased with real-life performance):

Windows 7 Experience Index (VM configured with 2 CPUs and 4GB RAM):

  • Processor: 7.3
  • Memory (RAM): 7.9
  • Graphics: 5.9
  • Gaming Graphics: 5.3
  • Primary Hard Disks: 7.9!

OSX Snow Leopard XBench Score (while the Windows 7 VM is running):

  • Results: 313.12
  • CPU Test: 207.48
  • Thread Test: 795.15
  • Memory Test: 522.65
  • Quartz Graphics Test: 275.75
  • OpenGL Graphics Test: 206.00
  • User Interface Test: 464.63
  • Disk Test: 267.94! (up from 55.54 with the stock 5400 RPM HDD)

OSX Snow Leopard XBench Score (while the Windows 7 VM is shut down):

  • Results: 319.76
  • CPU Test: 218.13
  • Thread Test: 802.30
  • Memory Test: 546.90
  • Quartz Graphics Test: 300.34
  • OpenGL Graphics Test: 204.10
  • User Interface Test: 451.10
  • Disk Test: 264.10

So essentially, aside from merely respectable graphics performance, this machine is lightning fast. My OSX boots to functional in under 20s. OSX loads apps usually in one bounce, even Word 2011, Photoshop CS5, Lightroom, iTunes (with a 60GB library); and the apps are functional immediately after they appear. Windows 7 via the VM boots to functional in less than 30s. SQL Server loads completely in 2-3s, Visual Studio does the same, and loading/rebuilding large (~20 projects in a solution) solutions takes about 12-15s.

I am very pleased, especially with the level of performance in the VM, which lets me use OSX for communication, image editing, public internet browsing, etc, while using the VM solely for writing code and sql. I get to use spaces to mitigate the single-screen problem, and if I want to acces some of my life stuff, well hey -- I'm in OSX, it's all right there. Big bonus too is that I can test the sites hosted locally in IIS on the VM from my mac browsers, which feels like magic to me (use Bridged networking, open port 80 in Windows Firewall, use ipconfig to get the local IP of the VM, and add a corresponding entry in /etc/hosts in OSX). I love it.

Hope this info helps someone who's thinking of doing something similar!

spot

Posted 2011-07-02T06:37:14.480

Reputation: 161

Answers

2

I haven't tried that, but theoretically: you will always experience some lags, as VMs never run at native speed. The performance will surely increase, because many operations which OS does are I/O bound (in this case it may do some things faster than host OS, but generally, computing things will always be slightly slower).

However, using SSD as a drive only for a VM seems weird (also, I've never heard of this "good practice"). Most people would use it as a main system drive to speed up things like bootup. But I get your point.
What I'm worried about is SSD wear-out. The problem is: VMWare saves whole disk to one file. Guest OS has no idea about underlying hardware, so it can't do anything to make your SSD drive live longer. There are many rewrites, deletions. I'm not really sure if OS X will be able to properly issue TRIM command to free rewritten/deleted blocks.

Also, you may want to read those: http://communities.vmware.com/thread/264065 and http://www.vmadmin.info/2010/10/vmware-fusion-ssd-performance.html

For me, better solution would be to install both OSes natively, Windows on SSD an OS X on HDD (if you will really use Windows more often).

We definitely need more study here.

Dr McKay

Posted 2011-07-02T06:37:14.480

Reputation: 278

1

A VM's biggest bottleneck is 3D graphics then disk I/O. Sounds like the latter is more of a concern.

It is going to be hard to say. While VS 2010 is quite the lumbering beast compared to 2008, you have not stated what your builds(solutions) look like. If you are just working on solutions with 5 to 20 projects, then performance is easy. I work on small solutions with up to 5 projects in one solution (amateur .Net). I have a really slow laptop (HP tz2500) but I never see any significant problems. After five is when I will maybe start to worry.

The bottleneck is really going to be during builds though. Debugging shouldn't change since you are just stepping through. I would be careful with the new Intellitrace though. I'd test it by writing a program that makes small sporatic writes (like once a second), run it for a couple minutes and get Intellitrace to log them. If VS doesn't lock up, you're good.

surfasb

Posted 2011-07-02T06:37:14.480

Reputation: 21 453