101
this post was submitted on 19 Jan 2024
101 points (94.7% liked)
Linux Gaming
15984 readers
516 users here now
Discussions and news about gaming on the GNU/Linux family of operating systems (including the Steam Deck). Potentially a $HOME
away from home for disgruntled /r/linux_gaming denizens of the redditarian demesne.
This page can be subscribed to via RSS.
Original /r/linux_gaming pengwing by uoou.
Resources
WWW:
Discord:
IRC:
Matrix:
Telegram:
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I wouldn't be surprised if this was essentially just a common result of refactoring code. Rust might help compile to more efficient C than the stuff people write on their own? But my code is always more performant after a refactor. Surely writing this in another language would cause someone to look deeper at the choices being made during development. Even the scheduler might have some technical debt.
The main improvement Rust provides is memory safety. It's very easy to make mistakes in C where you could overrun a buffer or something, introducing unexpected crashing and making it vulnerable to exploitation by malware or whatever. Rust eliminates a whole category of issues with their clever memory management paradigm. The improvements in this schedule probably have more to do with the strategy used than code efficiency.
Didn't we already do that with c++ and c#? Is rust just c++++?
C and Rust are low level languages, suitable for interacting directly with the hardware. C++ might be described as C with some object oriented stuff bolted on, making it excellent for videogame development. C# is a lot more like Java. It's great for line of business apps because it handles the complexity of memory management for you and provides an excellent framework and excellent libraries for a lot of common tasks. But it's not suitable for low level work.
Linux has quite a few schedulers. The performance of this new one is almost certainly a result of different algorithms used, not an effect of refactoring the existing ones, nor the language it's written in.
I don't think I'll dig in to the code just now, but if it turns out to have much practical value, perhaps we'll eventually see an article about the design.
Yeah, a scheduler just decided which processes get CPU time and takes up a very small part of total execution time. So yeah, I wouldn't expect compiler optimizations to matter much.