- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
I remember when Proton launched it was like magic playing games like Doom and Nier Automata straight from the Linux Steam client with excellent performance. I do not miss the days of having the Windows version of Steam installed separately.
Somewhat true, but the truth is that the CPU scheduler on Windows is just awful. It literally wastes performance because it doesn’t optimize instructions as efficiently as schedulers on other OSes.
Without going into details, we ported an application that I worked with that did complex scientific calculations to Linux. All the calculations code was done in C and C++ so it was 99.9% OS agnostic. We consistently got at least a 50% performance increase when running on Linux as opposed to Windows. We tested just about every edition of Windows from Windows 8/Server 2013 to Windows 10/Server 2019. The version of Windows that did best was Windows 7 and Linux was 50% faster. All the other editions were slower.
And the distro of Linux didn’t matter much. A few percent difference here and there, but all of them were astonishingly faster than Windows.
The only similar issue I faced seemed to be due to multithreading. I don’t know enough about the underlying architecture to point my finger at a specific ‘thing’ but I was beating my head against the wall seeing the same 50% drop in performance. The one way I was able to get comparable performance was if I limited the cores on the machine to 1. Windows was only a couple percent slower in that case. When I upped the cores windows couldn’t keep up. The weird part is that the utilization in task manager looked like all the cores were being utilized but the performance certainly didn’t reflect that. I was finally able to get the program manager off my ass but how they handled the situation really soured me on staying with the company so I left, feel bad for the next person to get hit with “get this application off Linux so we can be a 100% windows client shop” garbage.
They contracted the companies developers at over 600k for six months of support, I was dedicated to the effort for a year, and the CIO apparently instructed a PM that nothing else mattered and if it didn’t work I was personally responsible. Like MFers, I didn’t design the hardware, operating system, or the application, I’m doing everything I know how, how exactly is this shit my fault?!
Surely Microsoft knows this.I guess that is why they have gaming mode.
Oh they do, but I don’t know what the real reason it stays that way. The only things I could come up with is that they simply don’t care, backwards compatibility (that one doesn’t really make sense to me), or finally that they can’t come up with a better version due to the mathematically good ones already exist in Unix and Linux systems under the GPL.
I’ll be honest, I can’t see that last reason stopping them, but who knows.
This article really shows the differences:
https://www.pugetsystems.com/labs/hpc/POV-ray-on-Quad-Xeon-and-Opteron-579/
It’s a bit old now, but the point still stands. I’m sure the schedulers across all systems have improved since, but it’s a fact the Unix/Linux systems are still better and more efficient.