Hi, recently I became very self aware of potential performance implications my code might have.
In go there are a few key concepts, like escape analysis and bound checks. If you check the standard library, you can see it was coded with micro optimizations.
For example, disabling bound checks in some methods, by doing something `like _ = s[10]`.
Or trying to use function arguments that they will likely end up on the stack and not on the heap, by playing the escape analyzer. I.e. pass buffer to io.Reader. Or sometimes, dont pass interface because it is hard for the compiler to understand that the interface doesnt escape.
I wonder, if I code like this, is this considered premature optimization. Or is more like good habbit?