0

I using windows 10 x64 virtual machine on Parallels on macos on macbook pro 16" 16G of memory (last year model). I configured the vm to use all CPU 16 cores and 6G of memory.

On windows I do Qt/C++ coding and I noticed macbook fans go full noise frequently (not to say all the time).

I shared a folder from macos to windows (parallels shared folder) and I work on that folder all the time from windows and macos at the same time. I do all I can on macos but since the app I'm coding is a windows app I need to build on windows side.

The shared folder was on iCloud before and I recently moved it out because of performance concerns. I'm not sure this helps or not.

As I said, on windows side I build my code on a shared folder (parallels shared folder from host to guest). An alternative is not to work on a shared folder, however this way I cannot use macos simultaneously.

Do you guys see my working environment setup is causing a performance issue? I was not expecting the fans to go high that much.

In order to further study the issue I configured a windows laptop where I can login using windows remote desktop from macos thus being an alternative to virtual machine. And I compared the build time, on vm it takes around 1.5x (100s vs 150s) of the time it takes to build on real hardware on the windows laptop. I actually was expecting it to be the around the same. Is this reasonable?

3
  • RE: "I configured the vm to use all CPU cores" and "Do you guys see my working environment setup is causing a performance issue?" -- That's the problem! You should never assign all cores to a VM. May 23 at 1:55
  • I changed it to 4 cpu cores but cannot notice any difference on fan noise. Interestingly build time is about the same with 8 or 16 cores, with 4 it takes more time.
    – KcFnMi
    May 23 at 2:58
  • Is there a difference in speed if you compile on a non shared folder?
    – mmmmmm
    May 23 at 9:20
1

This is all very anecdotal, but the 'best' number of cores to assign for maximum performance is 'the actual number of cores, excluding virtual cores'. In your case 8. You could probably get away with giving it more RAM too. 8GB is safe out of 16, though you might get away with 12.
You'll never get a VM to compile as fast as a hardware install, if all else is like for like. Compiling is always going to work the machine hard - or it's not going as fast as it can. The trick of using all the 'real' cores is that you leave yourself enough breathing room to still be able to work without hinderance on the Mac side at the same time.

1
  • Side question, what about Docker? Compiling in a docker machine is also expected to be slower than on real hardware? And compiling in a docker machine is expected to be faster than on a vm?
    – KcFnMi
    May 27 at 0:33
1

In order to tune your virtual machine and Mac for the best performance, Parallels usually recommends to properly share your Mac resources between Host and Guest. You can provide your virtual machine with all CPUs you had, but Host will have nothing left and this will slow down the whole system.

In your case, you can allocate 12 CPUs to your VM and check the performance.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .