Learn how enums are organized in memory. Also understand the generated assembly code for match on an enum.
Compare the generated assembly from the Rust code. Learn how the memory is organized in these cases.
Learn how Arrays, Tuples, Box and Option are represented in memory. Also understand the generated assembly code for these types.
Learn how to map Rust vector iteration to assembly. Also understand how the compiler optimizes the loop with vector instructions.
Compare the assembly code generated for static vs dynamic dispatch for traits. Understand the performance implications of each approach.
Learn how the compiler optimizes dynamically dispatched tail calls and how it frees memory when using trait objects.
Learn how Rust compiles recursive tree traversal to assembly code and the optimization techniques used.
Compare assembly code for Rust closures returned as impl Fn and Box<dyn Fn>
impl Fn
Box<dyn Fn>
Learn how Rust implements async functions using state machines and assembly code
Desugaring and assembly code analysis for nested async function with a loop.
Learn how the async executor schedules async tasks in Rust. Understand the code of a simple async executor.
Understand the assembly code generated when mapping a Vec<bool> to a Vec<& 'static str> (static string slice vector). The allocations and de-allocations operations are also covered.
Vec<bool>
Vec<& 'static str>
Understand the assembly code generated when mapping a Vec<bool> to a Vec<String> (owned string). The allocations and de-allocations operations are also covered.
Vec<String>
Explore Rust's internals with this presentation covering memory layout, pattern matching, smart pointers, recursion, vtables, zero-cost abstractions, closures, and async/await.
This site runs no analytics and sets no tracking or advertising cookies. A small number of strictly-necessary cookies are used by our hosting platform to keep your session working. See our Privacy & Cookies page for the full list.