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

Link to video: media.ccc.de - Safe and Secure Drivers in High-Level Languages

Link to Rust repository: GitHub - ixy-languages/ixy.rs: Rust rewrite of the ixy network driver

1 Like

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

https://github.com/ixy-languages/ixy.swift/blob/master/performance/README.md

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

2 Likes

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.

2 Likes