構造体のポインタの数を減らすことは GC に有利
構造体のポインターの数を減らすことは GC に有利であり、データ構造をより L キャッ シュフレンドリーにすることで、プログラムのレイテンシーを減らせます。また、コンパ イラーがデータ構造をヒープではなくスタックに配置する可能性も高まります。 しかし、主な欠点は、構造体を値で渡すときにオーバーヘッドが増えることです(「5.5.1 値、ポインター、およびメモリブロック」で述べたコピーオーバーヘッド)。
特に stringは見た目にはわかりませんが、 特殊な []byteであり、つまりバイト配列へのポインターを持っています。極端な話、ある条 件下ではstring を []intのoffsets と []byteのbytes に変更して、 ポインターのない構造体にする価値があるかもしれません!
異なるバイトフォーマットにマー シャルしたりアンマーシャルしたりすることを想定したデータ構造を実装する場合にも、非常 にポインターが多い構造になってしまいがちな例が広く見られます