- cross-posted to:
- hackernews@derp.foo
- cross-posted to:
- hackernews@derp.foo
tl;dr large gaming performance over stock CPU scheduler when there is a heavy CPU task running in background
Obviously, they only tested one game and it may not apply everywhere or hurt performance/latency in some cases.
One thing I wasn’t aware of is that sched-ext/ePBF supports changing CPU schedulers on-the-fly, which takes away one of the downsides of third-party schedulers. I.e. you can use the stock scheduler most of the time, but then switch to a third party scheduler for specific workloads. So less of a downside risk.
Finally, none of this is merged yet (including sched-ext) so it’s out of reach if you are just using the stock kernel.
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.