Solution 1:

From my experience, Yosemite is using a lot more RAM than 3GB if you run it natively (no emulation). I imagine in virtualised mode it would take even more. I have 16GB installed on my system and Yosemite is using about 4-5 GB without any application running. Once I open other applications and run one or two virtual machines the available RAM can go down almost to under 1GB.

Virtual machines use a lot of RAM in Yosemite for creating file caches. For example, if I run a Windows XP or Mountain Lion VM in VMWare on a base Yosemite system and allocate about 4GB of RAM, VMWare will use more than that for caching files.

This is done for speed purposes, so that if you close the VM and want to open it later, it will take much less time to resume the VM if there is a file cache in RAM, than if there isn't one. You can test this by running sudo purge in the Terminal after you close a virtual machine, then re-opening it. You will notice that resuming the machine is much slower than if you didn't purge the RAM of the file cache.

Also, VMWare seems to not work well/recognise graphic cards in virtualised OS X. For example, I created two virtual machines, one with Windows XP and one with Mountain Lion. The Windows VM can play the same game, altough it's laggy even with 8GB allocated RAM, whereas the OS X VM can't even open the game, the application crashes at start. Which means the virtualised OS X doesn't even recognise there is an emulated graphics card.

Solution 2:

In OS X veritcal sync is called beam sync.

Using BeamOff or Quartz Debug to toggle this setting may solve the UI lag problem.

Solution 3:

I ran into crippling slowness on a Mid-2011 iMac in Fusion 7 after upgrading to Yosemite. It wasn’t Fusion, but all hypervisors were hit by a bug found across the Mid-2011 lineup.

If that sounds like your Mac, you can fix it by restarting after running:

sudo nvram boot-args=debug=0x10

I’m not sure why it works, but it does.

Here’s a Parallels KB on it. Here’s a VMware community post claiming Apple is aware of the bug. As JBingham writes on the VMware boards, the above command will overwrite any existing boot-args, so run a check with:

sudo nvram -p | grep boot-args

Solution 4:

I believe that a recent advent in Mac OS X development may be to blame for the issue delineated:

https://derflounder.wordpress.com/2014/12/13/improving-yosemite-vm-performance-in-vmware-fusion/

According to multiple sources (including the one listed above), even having the VMware Tools installed won't help much - it's the way in which Mac OS X handles graphics and GUI.

With the advent of OS X Yosemite (and newer versions), a new system for Screen Redrawing and Window Management was introduced. It's called Beam Syncrhronization. As a result, Mac OS X now uses a lot more physical memory, but runs well on physical hardware (especially MacBooks, obviously).

But, this change hurts virtual machine users - the new system slows down performance on virtual hardware. It's because the new Beam Syncrhronization system doesn't appear to have been designed with virtual machine users in mind. As you noted, changing the amount of RAM won't change a thing. I even tried increasing the number of CPU cores that VMware Player could use - that was practically useless.

As a result, it is suggested that you disable Beam Syncrhronization by going into Apple's native Quartz Debug developer tool, and selecting "Disable" under the "Beam Sync" menu. As an added pain, unfortunately, you'll have to repeat the process everytime you login. I am sorry to be the bearer of bad tech news.

Fortunately, BeamOff - an application desinged by JasF on GitHub, has been created to fix this issue. Its sole purpose is to disable Beam Sync, which should vastly improve performance, in theory. But, if you don't like the given solution, I'm guessing that a shell script/AppleScript could be designed for the given task as well. But, I haven't AppleScripted in years (since the release of Leopard/SnowLeopard), so I can't help in that endeavour.

Edit - It should be mentioned that the fix delineated above is actually a part of Apple XCode Tools, and doesn't come with Mac OS X. Therefore, you'll have to download it from Apple's online repo. The tool you would need in this case is one from a group of Graphics (optimization) tools.

Good Luck.