bytes.Bufferの実装の変更 [golang]
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- 作者: Alan A.A. Donovan
- 出版社/メーカー: 丸善出版
- 発売日: 2016/06/20
- メディア: 単行本(ソフトカバー)
『プログラミング言語Go』の「6.6 カプセル化」で
bytes.Buffer
に関して次のような記述があります(193ページ)。例として、実際に、Go 1.11まではこの記述にあるような実装なのですが、次のGo 1.12ではこのbytes.Buffer
型を考えてみてください。 この型は非常に短い文字列を蓄積するために頻繁に使われます。したがって、そのようによくある場面でのメモリ割り当てを避けるために、そのオブジェクト内に少し余分な領域を確保するのは有益な最適化です。Bufferは構造体型なので、その領域は大文字で始まっていない名前を持つ [64]byte
型の追加のフィールドの形式になります。このフィールドが追加されたとき、それは公開されなかったので、Buffer
を使うbytes
パッケージの外部のクライアントは、改善された性能を除いたどの変更にも気づきませんでした。
[64]byte
型の追加のフィールドは削除されるようです。修正のコミットは、こちらです。2018-09-15 17:55
コメント(0)
コメント 0