Set up a VMware environment with a Mac virtual disk connected to an NVMe storage device.
Set up a VMware environment with a Mac virtual disk connected to an NVMe storage device.
I’m focusing on a clear setup. Using your PC with a 256GB SATA drive and a 1TB NVMe SSD should work well for running VMware. It may help to optimize storage layout and ensure sufficient RAM for smooth performance. For MacOS, consider using a lightweight virtual machine image and monitoring resource usage closely. If issues arise, upgrading RAM or switching to a faster SSD could improve stability.
MacOS virtual machines don't perform as smoothly as on physical hardware even with a macOS host. It's likely more challenging to get one up on a non-macOS system, but once operational it should behave similarly. You might notice some delays and reduced 3D performance.
Using a vdisk on an NVMe drive can affect performance, potentially improving boot times and overall speed due to faster data access.
With Apple Silicon, running MacOS smoothly on a dual boot Hackintosh is now possible. For development opportunities that could bring income, a basic Mac Mini paired with a USB switch offers a cost-effective solution. You can repurpose your existing keyboard and mouse, and only need to modify the monitor inputs. Look for used M1 Mac Mini models if you're interested in affordable options. The original Mac Minis are fast enough for coding tasks and will integrate well with your current setup.
Against a hard drive? Yes, but it won’t speed things up. All Macs use PCIe drives and it doesn’t improve performance in the virtual environment. In VMware or Parallels, I don’t recall trying macOS inside VirtualBox, though VBox is problematic on Mac hosts anyway, so it probably would have been even worse. ^^^ There seem to be new M1 Mac Minis being sold for as little as $475—they’re impressive machines for that price.
Others have noted the NVME mainly impacts startup time and doesn’t improve performance inside the VM. The most affordable choice is the 2020 M1 Mac Mini. Even the entry-level 8/256 model works well for Flutter apps with Android Studio, Xcode, or iPhone simulator—everything runs smoothly. For setup, as @johnno23 mentioned: a USB switch can work for peripherals but needs manual video input selection. Instead, opt for a KVM switch or a monitor with built-in KVM if you need frequent switching. I personally use the Gigabyte M27Q and toggle between devices using keyboard shortcuts via a small Python script. Alternatively, if you don’t want it on your desk, Parsec lets you remote access without a local device.
The most effective method to understand macOS is using a physical Mac. Recent updates include features that let you view another macOS environment.
I use both Mac and PC with an affordable Ugreen USB switch for the keyboard/mouse. The monitor has two HDMI ports and a DP port. I connect the Mac mini and the PC to the monitor. The main issue is that I have to press a button on the USB switch first, then another one to select the display signal on the monitor. It’s a cheap and straightforward setup.
I created a virtualized Intel Catalina using VMWare Player on a Ryzen 7 3700X with a 5700XT GPU and 32GB of 3200MHz RAM. It performed extremely poorly, showing no graphical boost; the virtual Mac ran at just 1–5 frames per second. Despite that, it handled the upgrade to Big Sur, though it didn’t improve things. I’d recommend considering a more affordable Mac Mini if this is meant to yield financial rewards. It would be surprising to accomplish anything useful on a virtualized system like this.