Using the multiprocessing benchmark code at the very end of https://realpython.com/python-concurrency/ (look for the codeblock in the “CPU-Bound multiprocessing Version” section - direct link: https://realpython.com/python-concurrency/#cpu-bound-multiprocessing-version ), I made the tests longer ten and a hundred times by changing the original “20” in “numbers = [5_000_000 + x for x in range(20)]” to 200 and 2000, respectively, and doing the same tests.
All the four Macs were up-to-date: MacOS 12.1. The same Python 3.10.1 was used everywhere. Only Activity Monitor (MacOS) / Task Manager (Windows) running in addition to PyCharm (python) to assess the process number.
The following chart, first, shows the four models (early 2015 13" MBP / 13" 2018 MBP / 2018 MacMini / 2021 MBP 16”) and their CPU configuration. The last four rows show Parallels Pro (latest version!) running on the 2018 MacMini. I’ll compare these figures to some real WinTel figures some time to see how much worse these are.
As you can see, the 2021 MBP 16” is almost three times faster than the second-fastest 2018 MacMini; six times faster than the 13" 2018 MBP and more than ten times faster than the early 2015 13" MBP.
Again, this is a CPU-bound multiprocessing benchmark, which heavily (!!!) profits from multiple cores as it evenly distributes the workload over every single of the cores. Tasks (for example Web browsing, non-optimized or non-optimizable stuff) NOT using multiple / all cores will NOT show so drastic a speed difference!
All values are in seconds.
Also note that the current Python 3.10.1 runtime is universal; that is, it also has an ARM binary. (Strange: MacOS still forced me to install Rosetta upon installing it - dunno why?!)
UPDATE (08/Jan/2022 20:40CET): on my 16” MBP, I’ve installed the current Parallels version (in Trial mode) and let it install the default Win11 ARM. I ran the single update in it; with that, it became version Windows 11 Home / 21H2; 22000.318. I installed PyCharm CE and Python 3.10.1 (all are the latest releases and x86 only).
The benchmark itself ran far better than I anticipated: the 16” was definitely (1,5…2 times) faster than the MacMini. However, PyCharm was really sluggish. It’s borderline useless, while, on the MacMini (which runs it (x86) natively), it’s perfectly usable - not much worse than the MacOS-native PyCharm running on the MacOS host. All in all, while the executing environment (3.10.1) itself definitely surprised me (positively), the downsides of x86 emulation were more than evident WRT PyCharm.
I’ve added the results in a new row starting with “2021 MBP 16” + current Parallels (in Trial mode), Win11 ARM + x86 Python”.
UPDATE (09/Jan/2022 02:04CET): Note: this isn’t related to Python benchmarking but MacOS ARM vs x86 + Rosetta2 emulation. I tested some files from the 8k MKV file archive at https://drive.google.com/drive/folders/1TSdV36G_npDtjRJze54GEYpdxpBt7nCK (also linked from https://www.avsforum.com/threads/8k-demo-videos.3107418/ ). The x86 VLC version running under Rosetta has always exhibited some 1.2…1.33 more CPU usage than the ARM version. I tested with both 30 and 60 fps MKV files. Not even the x96 version playing the 60p video did drop any frames. Some results (avg CPU usage):
8k30 (“First 8K Video From Space~Orig.mkv”): ARM: 27%, x86: 36%
8k60 (“Bulgaria 8K Hdr 60P Fuhd”): ARM: 37%, x86: 45%
UPDATE (09/Jan/2022 04:22CET): I’ve just posted a separate thread on hacking PyCharm to use the ARM JDK instead of the built-in x86 one for a MAJOR speedup - now it seems to be totally usable!!!
MAJOR speedup (Win11 ARM, Parallels): Hacking PyCharm to use the ARM JDK instead of the built-in x86 one
Note: at work, I need to do some serious work in PyCharm under Windows on my Mac. This is why I’m more than interested in making PyCharm work in the ARM version of Windows 11. In my previous thread (...
forums.macrumors.com
Last edited: