One of the features that VMware has over most other vendors is a feature called memory overcommit. Microsoft and Citrix usually downplay this feature since they don't have it. However, with Microsoft's recent joint announcement with Citrix, Microsoft announced a feature for Hyper-V called Dynamic Memory (which is a form of VM guest memory ballooning). Since the announcement, information about the Dynamic Memory feature has started to come out a little more. Microsoft's James O'Neill recently stated:
"...dynamic memory will monitor demand for memory and use the hot-add capabilities of modern OSes to increase memory. Eventually all the memory will be committed and since you can't hot unplug memory we have a component to take memory out of use in one VM so that it can be given to another - and Hyper-V will take memory from the VMs which need it least. Dynamic memory won't be supported on every possible operating system… By de-allocating memory in VMs Hyper-V ensures the total allocated remains below the total present: when a VM can't receive any more memory the OS in it will decide which caches should be abandoned, and which pages they should swap to disk. Hyper-V never swaps VM's memory to disk. You can have a design which over-allocates, and swaps when over-committed (and uses page sharing to allow some over-allocation before reaching the point of over-committing) or one which doesn't swap and so doesn't need page sharing to reduce swapping - but can't over-allocate either…"