bytes.Buffer в Go: оптимизации, которые не работают

Многие Go программисты знакомы с bytes.Buffer. Одно из его преимуществ состоит в том, что он позволяет избегать выделений памяти в куче по той же схеме, что и «оптимизация коротких строк» (small buffer/size optimization):

type Buffer struct {
    bootstrap [64]byte // для избежания аллокации малых слайсов в куче
    // ... другие поля
}

Есть только одна проблема. Эта оптимизация не работает.

К концу этой статьи вы узнаете, почему эта оптимизация не работает и что мы можем с этим сделать.

Читать дальше →
bytes.Buffer в Go: оптимизации, которые не работают
Source: habrahabr