Rust: Dropping heavy things in another thread can make your code 10000 times faster
- When working on Rust applications or CLIs that need to show something to the end user as fast as possible I often find that a significant chunk of the time is usually spent not in doing any computations, but in dropping large data structures at the end of the function.
- This is because Rust needs to drop the value of a and deallocate all memory it was using before it can return.
- This really sucks for UIs and interactive CLIs. We got all needed data to respond to a user request, but can't do anything with it until we finish cleaning things up!
- The function returns right away and somewhere in the future the other thread will start doing the work of dropping the data structure and deallocating all used memory.
Top 200 comments