|
|
|
|
|
by kosherhurricane
801 days ago
|
|
More or less. For a language designed for fresh-out-of-college engineer to pick up in a few weeks and be effective, it is very easy to squeeze out a lot of performance. * built-in profiler.
* built-in escape analysis tool.
* It's easy to pass pointers instead of copying data.
* []byte is sub-slice-able, with a backing array. This does throw people off occasionally, but the trade off is performance.
* Go lets you have real arrays of structs, optimizing cpu caches.
* Built-in memory pools And more. And if you look at "non-idiomatic" performance code, they are surprisingly legible by the said fresh engineer. It's as if the designers didn't want to give up all the usual C performance tricks while making a Java/Python kind of friendly language, and this shows. Of course Go can go only so far, due to the built-in runtime and GC. But it gets very far. Much farther than at first glance, or second glances that language snobs would give credit for. |
|