4 ms·
which most of the time are baked into the program binary in C/C++, not sure about Rust Pretty much the same, string literals are of type &'static str, which is
by danieldk 10y ago
which most of the time are baked into the program binary in C/C++, not sure about Rust
Pretty much the same, string literals are of type &'static str, which is a string slice with a static lifetime. Since literals are not `mut`, you cannot mutate them.
- vvanders 10y agoYeah, semantically you're right. I'm talking about actual binary representation. Some systems/runtimes copy them to the heap/etc while others let you reference the actual memory in the loaded binary. Back when I did more embedded stuff we cared since it could increase your runtime memory by a non-trival amount depending on what the platform did.
- steveklabnik 10y agoIn Rust's case, to be clear, they're stored in .rodata. That's where the &'static str points to. The auto copy to the heap behavior is controversial, desired by many for ergonomic reasons, disliked by others for implicit heap allocation. We'll see if it gets added in the future or not!
- vvanders 10y agoYeah, you'd find me in the latter camp for sure :). Thanks for the details, it's appreciated.
- deleted 10y ago[deleted]