microsoft / windows-drivers-rs

Platform that enables Windows driver development in Rust. Developed by Surface.
Apache License 2.0
1.49k stars 65 forks source link

Build perf: Make calls to bindgen run in parallel #159

Closed NateD-MSFT closed 4 months ago

NateD-MSFT commented 5 months ago

When compiling this repo (or projects that depend on it), a large portion of the build time is spent waiting for bindgen to finish constructing bindings to the WDK. This can severely slow down iterative development and builds.

This PR makes a simple change to how we call bindgen by calling each function wrapping a call to it in parallel. On my machine this provides a speedup of running "cargo make" in windows-drivers-rs of about 20% (~500 seconds run time to ~400 seconds).

I wouldn't be surprised if we can refactor the calls even more to see greater speedups, but this was just a quick late afternoon project to speed up work on other features.