[Video 35C3] "How to write PCIe drivers in Rust, go, C#, Swift, Haskell, and OCaml"

Link to video: https://media.ccc.de/v/35c3-9670-safe_and_secure_drivers_in_high-level_languages

Link to Rust repository: https://github.com/ixy-languages/ixy.rs

1 Like

Some graphs show that the Rust version is significantly slower than the C version:

Has someone profiled or studied the Rust version to understand the source of such lower performance, trying to fix it?


The meta library has a more recent commit, and the graphs look a bit different.

I watched the talk this morning and the author admitted there were minimal to no assertions within the C reference implementation.
On the other side; the Rust implementation was implemented in the context of a bachelor’s thesis. Not to downplay the skills of the author, but he’s probably not a veteran developer nor had the time to properly investigate performance optimizations.

Given some contexts, both the reference- and Rust implementation have the same per packet latency. I believe there are still performance optimizations possible to match performance in all cases.