11

Visualizing memory layout of Rust's data types

 2 years ago
source link: https://www.youtube.com/watch?v=rDoqT-a6UFg
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Visualizing memory layout of Rust's data types

5,355 views
Oct 13, 2021

Covers how a binary is executed, what segments are mapped to memory, the purpose/working of stack and heap memory, and how values of Rust's data types are laid out in memory. The data types that we cover here are integers, char, Vector, slice, String, string slice, structs, enums, smart pointers like Box, Rc, Arc, Trait object and Fn traits like FnOnce, FnMut and Fn.

We also cover the difference between String and str types, Vector and slice types. Topics like fat pointers, optimizations done by the Rust compiler when you wrap a reference inside an Option are also covered.

0:00 Segments in a binary 3:14 Stack & Heap 5:46 CPU Word size 7:08 Working of stack memory 10:25 working of Heap memory 14:00 Integer data types 14:30 char 15:15 size_of & align_of 15:51 Reference 16:58 Array 17:21 Vector 18:19 Slice of T 19:54 String, str, &str 21:17 Struct 22:14 Enum 24:14 Box pointer 24:51 Optimizations on Option 26:34 Copy Vs Move 29:21 Rc pointer 30:45 Send vs Sync traits 31:00 Why RC is neither Send nor Sync 31:24 Arc 32:19 Trait object 34:20 Function pointer 34:37 Closures

Life of an async fn: https://youtu.be/ZHP9sUqB3Qs stack & heap / virtual address space: https://lwn.net/Articles/738975/ https://docs.microsoft.com/en-us/wind... Book: Programming Rust by Jason Orendorff, Jim Blandy, and Leonora F.S. Tindall


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK