Pages

Mac: How quickly does VMware Fusion run my development environment? Very.

Now that I'm back in my home office I figured I'd get Visual Studio 2005 Professional - my primary development environment - properly set up.  This proved a little more time consuming than I thought it would.

Installing and initially configuring Windows XP in a VMware Fusion Virtual Machine (VM) takes a little while. I decided that rather than play around with my existing VM I would build a new one that I could snapshot at key points. Fusion allows you to create a snapshot of your VM at any point in time that you can revert back to if something becomes hosed up - a distinct possibility when installing and configuring a development environment with after-market controls.

I forgot how long it takes to install Windows fresh, even with Fusion giving you a jump start. Not only do you have the 30 or so minutes to do the initial installation, you have to run Windows Update multiple times to get each layer of security patch in place. In my case that was over 100 patches and three full restarts.

Once I had Windows XP up and running I took a snapshot and then installed Visual Studio 2005 Professional. That took another 20 minutes or so for the initial install, then another 30 minutes for several layers of security patches on it. It took a while to get through all of this.

Finally, I went about installing my controls. I use Telerik right now, an outstanding set of controls that make for some really nice looking web applications.

From start to finish it took me over 2 1/2 hours to get everything set up properly. Once it was all up and running clean I took another snapshot in case I needed to roll it all back.

I was able to load my current project up, which included a local SQL Express database and tens of thousands of lines of code. It loaded fine the first time in, compiled clean and allowed me to see my application in IE (all within my VM). I could trace through code in the debugger, set breakpoints, modify data in the tables dynamically, etc.

From a performance standpoint everything ran very smoothly - I didn't see any big gaps in performance, even though this is a little MacBook. Comparing it side by side to my dedicated Windows machine yielded some interesting results:

TaskWindowsMacBook
Load Visual Studio 20053s3s
Load web project into VS 20058s4s
Rebuild entire project8s9s
Click run, load IE, app running3s3s
View Class Diagram6s9s
Save Class Diagram18s25s

My Windows machine has the following specs:

EVGA 680i Motherboard, Intel Extreme QX6700 2.66GHz processor (quad core), dual WD 150GB 10K RPM Sata drives, 2GB Corsair Dominator matched memory, EVGA 8800GTX video card. Running Windows XP SP2, fully patched.

My MacBook is a 2.2GHz machine with 4GB of RAM and a WD 320 HD. I am running VMware Fusion 1.1.1 and the same version of Windows XP in a VM.

I think the places where the MacBook finished up a little faster is where I have a number of external drives mapped to my Windows machine that in some cases it would run out and look through during some activities.

These numbers are me timing them with my digital watch. They could be off by as much as a second and since the machines are dramatically different this is not a head to head comparison in any way.

What it really represents though is that running VMware Fusion and Windows on a Mac can get very comparable performance to a PC running Windows exclusively. I really like the fact that right now I have an 18GB file that represents my entire Windows XP development setup.

If for example I want to set up a new Mac Pro as my development platform all I have to do is install VMware Fusion, copy the 18GB file over and I'm in business. No going through nearly 3 hours of installation and hassle.

Right now that sounds really, really appealing.

24 comments:

Chris Howard said...

Would love to know what you think of Parallels and how it compares. Maybe they could give you an ecal copy.

Chris Howard said...

oops "eval"

Vito Traino said...

Wow! I am impressed with the speed comparisons, and it seemed like the only time the macbook was slower was when it had to access data far away.

Question: I am looking into making software. Not necessarily web apps, but probably desktop applications. Would you suggest VS for this too? And for a beginner?

Keep it up and I'll keep on readin'!

MikeZ101 said...

I personally would pick VMWare over Parallels.

What advantages does using telerik custom controls for ASP.NET have? I have yet to really use any 3rd party custom controls mostly cause my work will not even considering paying for them when they can pay 4 times the price in hourly pay having me do it.

So I am curious to know what advantages I could have by using this. I am almost 100% C# / ASP.NET development. The only thing I have convinced them to pay for as Visual Assist X.

David Alison said...

@chris: I've heard good things about Parallels - not sure that I really feel like testing it out though.

@vito: Visual Studio is a really deep and complete development environment. What's nice is that you can build web applications or Windows based applications. It's all in there. Unfortunately you cannot create Mac based applications. It can also be a bit overwhelming if you are new to applications development. Microsoft has a really good site for figuring out of this is something you want to invest your time in:

Microsoft Express Editions

I could write several very long pages on what would be a good development environment to learn on. If you want to try it more from a hobby standpoint, not a career choice, you should also look at Flex from Adobe. You can actually create desktop applications that target Windows, Mac and Linux. It's really impressive.

Good luck my friend!

@mikez101: Telerik is fantastic for building up commercial grade UIs. If you are doing internal IT type development where the application is used by internal people inside a company the basic grids and controls MS provides will probably be adequate. But if you want easy ways to create modal dialogs, advanced grids that render like a desktop application or highly skin-able controls like Calendar pick lists, Telerik is amazing.

I recommend that you download their trial and play with it a bit. www.telerik.com. I highly recommend these guys.

MikeZ101 said...

I do almost all internal intranet stuff. I took a quick glance at there site before my last post. It looked like it was just a nicer ui to me.

We do have multiple public sites and our clients are able to login and see all thier information again in just your normal GridViews, DataGrids and so forth. Really the only thing that I don't like is the ASP Menu.

I did like some of there demos the GridView control is very nice from telerik.

I have not forced myself to do much with XCode yet. The only reason I would probably even consider it is to design some iPhone apps but I am going to wait and see just how that plays out before I go invest my time into something that apple will not let me put on an iPhone.

Vito Traino said...

Thanks a lot David!

I'm downloading MVB Express right now plus the toturials to get my feet wet.

I really appreciate you pointing me in the right direction.

Hendrik said...

Thanks for the review. Those times are pretty impressive. Starting up my Windows XP VM tends to slow things down for me quite a bit. But I think that is because I 'only' have 2GB and tend to have tons of programs open. I just bought a 2GB module to upgrade it to 3GB. I couldn't believe how cheap memory is these days.

As for the Parallels vs VMware: I talked to one of the internal tech support guys at a very large software company that develops for Mac and Windows. He said they encountered way less issues with VMware. It proved to be just much more robust overall, so the company ended up getting a site license for VMware.

David Alison said...

@vito: That's excellent man. Take your time and be patient. The tutorials Microsoft provides (and there are more at the ASP.net site) will help you get the basics down quickly. They also include excellent forums where you can ask questions about your development environment. Once you've gone through the tutorials try to think of a really simple desktop application you can do. Make that a goal and just methodically learn the areas you will need to make it happen. If programming is for you then you are about to have a lot of fun learning cool new stuff!

@hendrik: You really do want to bump memory as high as you can. The memory I bought (4GB just a little over a month ago) has dropped from $99 to $79 at NewEgg. You should also make your Windows XP VM use at least 1GB of memory, not the 512MB that is the default recommendation.

Jon Sabino said...

Hey David, found you after you got "dugg" and have been reading ever since. Like you, I was an old school dos/Windows developer all my life. My brother was the same, but got a Macbook last year after going back for his grad degree. He couldn't say enough about it and "forced" me to play around with it a little. Within 10 minutes I fell in love with the thing, bought one that night online, and never looked back. I ONLY use my windows machine at work, at home it's all my Macbook (of course also running XP with VMware). I recommend a Mac to anyone who will listen, and I thought I was the only one who couldn't quantify why. "So what's so great about it?"....Well it's....ummm....well I can't really explain it, it just is, it's everything, just use one and you'll see is all you can really say.

I've used both Parallels and VMWare, and have likes and dislikes of both. However, as far as performance, VMWare is far better/faster/more stable from my experience.

On an unrelated note, you mention you use Time Machine (I just started to) and I wanted to know how you have your setup. Do you mostly work at your desk and have your external drive directly plugged in to your Macbook most of the time? I mostly am NOT at my desk when using my mac, and it just seems like such a hassle to always have to go plug it in when I want to back up, which is only every few days at best. Now that the Airport Extreme supports Time Machine backups wirelessly to an external drive as of a few days ago, I'm thinking about getting one (with the added benefit of upgrading my network from g to n).

Sorry for the long post but you know how it is when you get talking about your Mac!!

David Alison said...

@jon: I hear you man - hard to really quantify why I like my Mac but I do. I think it's the collection of lots of little things, and the fact that I can still run my Windows development environment perfectly fine.

On the Time Machine front I have a WD 1TB My Book drive connected through USB. I actually purchased an Apple Airport Extreme and tried hanging the My Book off it but even with the setting enabled to see network drives in Time Machine I couldn't get it to work. Since my MacBook sits at my desk it's not a huge deal to have it plugged in. I have another pretty lengthy post about it here.

Now that the Airport Extreme supports external drives I figure I'll try one out again and see if it works. If you are thinking of doing that and you happen to have a Best Buy near you then I'd buy it from them. They do not charge a restocking fee if you need to return it because it is incompatible with your external drive. This is what I'm planning on doing now that the support is technically there.

Jon Sabino said...

David, thanks for the Best Buy tip. I was going to just order direct from Apple, but there's a Best Buy right around the corner so I think I'll go that route sometime this week. I don't even consider them when thinking Apple purchases and forget that they carry Apple products.

In reading one of your older posts, I see that you chose to stick with Safari rather than Firefox. I've been the complete opposite since I've had my Macbook, trying Safari a few times but not really liking it. The MAIN reason for this was that every darn time you click a link on any page it opens a new Safari window, and before you know it you have 20 darn Safari windows open in the background. Don't know how you feel about this, but coming from a Windows environment, this really bugged me, and was enough for me to stick with Firefox over Safari.

Just the other day I found this post:

http://www.tuaw.com/2008/03/21/terminal-tip-safari-3-1-brings-true-one-window-mode/

A simple one line command in terminal and Safari now behaves like a browser should. I've since switched back to Safari and am really starting to like it now.

Thanks again and I'll be looking forward to hearing about your second try with the Airport.

David Alison said...

@jon: Dude, that is the best tip I've gotten in a while! Thanks! While I generally click the center mouse button (scroll wheel) and have it open a link in a new tab it does not always work, especially with Gmail links for some reason. This fixed that!

Jon Sabino said...

Funny, for some strange reason I just knew you'd appreciate that tip. Glad I could help! Jon

David Alison said...

@Jon: It's already a new post with proper credits :-)

Jeremy said...

we pretty much run the same machine except my 250gb hd. i got a fatal error while using snapshot and maybe i was quick to judge but parallels runs xp just as fast and hasnt caused me to lose my mind

David Alison said...

@Jeremy: I use Snapshot while running Fusion both windowed and full screen without any problems - maybe you were running an older version?

jeremy said...

well fusion has never come out with a new "version".. So yes, i have version 1 and the latest build. Do you think there will ever be a new version? I read somewhere they are losing a lot of money on this product and might discontinue it since their company is in such bad shape

Hendrik said...

Fusion is at version 1.1.1.
Version 1.1 was a pretty major update.

David Alison said...

@jeremy: That's news to me (VMware Fusion sales problems). Do you have a link to a story on this? They have an additional $79 of my money as of a couple weeks ago so maybe that changed everything :-)

From everything I've read they are getting really good reviews and with the "rising tide" of the Mac market I can't imagine they would be losing money on it or consider discontinuing it.

TheMacThinker said...

David,

I understand you have a lot of experience with Visual Studio. Have you tried the Mac IDE called XCODE?

It should be in your Mac OS X install cd. You can install it and play with it. It is like Visual Studio for Mac and it is really cool. Preprocessing, developing mac, unix and iPhone apps. You will love the integration. Plus I love Instruments, which is a developer application for mac that allows you to test your application checking for memory leaks, performance etc... let me know.
TheMacThinker
www.MostOfMyMac.com

David Alison said...

@TheMacThinker: I have looked at Xcode, though it's not as robust as Visual Studio - from what I could tell you target Mac based client applications exclusively. My current development needs revolve around producing highly scaleable web based applications that can work with large DBs and be deployed with minimal hardware. VS can generate applications using that model really well. Others on the short list I examined were Java, a couple of different LAMP stack variations and Ruby on Rails. I ended up staying with VS because I already know it pretty well and it can now run on my Mac using VMware!

I'm going to examine Xcode in more detail when I complete this development effort and start looking at custom client applications. I love the concept of a rich web based app. that can also be accessed by a well designed custom client application using web services calls.

Eytan said...

FYI... Be sure to add your VMWare partition to your time machine backup exclusion list, and the same with your entourage DB in case you use Entourage. Since these are single monolithic files, any change to them will cause a COMPLETE backup of that file, that means 18 GB multiple times a day for your VMWare parition...

I use Parallels on my laptop, and VMWare on my desktop. Parallels has much nicer and tighter integration with the Mac file system and applications, while VMWare supports two cores and 64 bit OS support.

David Alison said...

@Eytan: Thanks man - learned that one the hard way. I don't use Entourage so that's no issue but that VM image is pretty big and I manually copied a stable version of that off.