1.
 
How Does Windows Use Multiple CPU Cores?
May 10, 2020, 12:34
1.
How Does Windows Use Multiple CPU Cores? May 10, 2020, 12:34
May 10, 2020, 12:34
 
Very, very poorly. Its bias determination is weak and boneheaded as Hell and hasn't been updated to keep pace with modern CPUs. Moreover, Windows doesn't handle memory allocation well nor does it clear things fast enough. Then on top of that, you're stuck with the hideously ancient NTFS file system that needs a real update to deal with SSDs, let alone NVMes. ReFS is OK but it, too, needs a bunch of optimization and cleanup and its sole focus is on large arrays. I am not even sure Microsoft knows how to write filesystems. They've started and abandoned at least half a dozen since the WinXP days. They have the money, they should just license ZFS from Oracle or contribute to btrfs to make either their "next gen" filesystem. ZFS isn't super fast but it is incredibly resilient and self-heals nicely. Add background snapshots to its list of treasures that doesn't require you to roll back the whole OS in the way Windows does it and you've got a safe, faster than NTFS filesystem for Joe Home User.

For me, I can replicate the difference in a performant OS (Linux) vs Win10 1909 extremely reliably:

System:
ASRock Extreme4 X570 (Latest AMD platform drivers for Windows, latest stable platform binary for Linux)
AMD Ryzen 7 3700X
32GB of DDR4-3400 CL16 Crucial Ballistix
Samsung SSD 970 EVO Plus 1TB (one for Windows and a separate one for Linux)
ASRock 5700XT Challenger 8GB (Radeon 20.4.2 for Windows, most recent stable mesa-amd package for Linux)
Intel X520 connected via fibre to a fibre switch (servers are too) with a confirmed 10Gbe link.
1080p 144Hz across all three monitors. ViewSonic XG240Rs. FreeSync enabled.

OSes:
Windows 10 Enterprise 1909 updated to latest as of 05/05/20
Manjaro Budgie on the latest stable 5.6 Kernel

So here is my real world test, not synthetic benchmark garbage:

1. Fire up Stormworks Build and Rescue (which hits the CPU particularly hard due to its physics calculations when everything is cranked up). Load up a ship I am working on that has about 7000 block objects in it) and enter build mode.
2. Fire up VLC, play a 1080P MKV at full screen on the second monitor, streaming from the NAS.
3. Fire up Audacious, play a FLAC of Black Sabbath's "War Pigs" on the third monitor set to loop, streaming from the NAS. UI only, no visualizations.

On Windows, cores 0 and 1 are heavily loaded. Cores 3-7 are idle 99% of the time. Stormworks is chugging, VLC's playback is choppy, and after ~20 minutes, the FLAC playback starts stuttering.

On Linux, cores 0-6 are all equally loaded to ~50% usage with expected minor fluctuations up and down. Stormworks is smooth as glass, even though it is running through the emulation of Proton, video playback remains consistent and the audio from the FLAC never stutters. I can do this for hours and it remains constant. Even if I start throwing VMs running in the background, it never misses a beat. Core usage goes up, naturally, and about the only time I started seeing some performance degradation was when I had 19 VMs running in the background.

This is clearly far from a scientific approach but its pretty representational of what happens if I fully load up both OSes with multiple packages/applications all pulling from the same drive.

Windows badly needs an overhaul which is not a small task as it will require a complete rewrite of the existing kernel codebase. But, that's the price you pay for using a nearly 30 year old kernel codebase that you just keep tacking on to without actually addressing the inherent flaws in it.

"No matter where you go, there you are." Buckaroo Banzai

There are two types of computer users: Masochists and Linux users.

If you would like help or further details on a technical discussion we're having, email me at bnhelp (at sign) keepusiel.net . Pl
Avatar 21247
Date
Subject
Author
 1.
May 10, 12:34May 10 12:34
How Does Windows Use Multiple CPU Cores?
2.
May 10, 13:39May 10 13:39
4.
May 10, 14:23May 10 14:23
5.
May 10, 17:48May 10 17:48
6.
May 10, 17:49May 10 17:49
7.
May 10, 17:55May 10 17:55
8.
May 10, 18:13May 10 18:13
9.
May 10, 20:27May 10 20:27
10.
May 10, 20:42May 10 20:42
11.
May 11, 13:17May 11 13:17