2 ms·
Except 1. Java is also supposed to do that, and clearly way less successful 2. Escape log is part of the standard baseline tools (it’s just a flag), so it’s n
by masklinn 4y ago
Except
1. Java is also supposed to do that, and clearly way less successful
2. Escape log is part of the standard baseline tools (it’s just a flag), so it’s not considered anything hidden or arcane
3. Go tends to log escapes, meaning it’s baseline is to stack allocate
So it’s a lot more than, say, common subexpression optimisation.
- yencabulator 4y agoThe subtle difference between the two ways of communicating the design: There are cases where the reference does not escape, but the compiler doesn't know how to prove that. So saying "if it escapes it's boxed" is subtly wrong. The default is heap, and only when the compiler can be sure it's safe, things go on the stack.