回答編集履歴

2

誤字修正

2021/03/08 00:26

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
 
50
50
 
51
- 例示の状況であれば「非ポインタ型構造体」のほうが良いことだらけに見えます。ただ、スライスにappendする時にコピーするのは「ポインタ値のサイズ(CPUレジスタ1個分)」のみです。非ポインタ型構造体をスライスにappendする時にコピーするのは「構造体全体のサイズ」です。また、引数渡し返値、メソッドレシーバーアクセスのたびに「非ポインタ型構造体」は「構造体全体のコピー」が発生します。
51
+ 例示の状況であれば「非ポインタ型構造体」のほうが良いことだらけに見えます。ただ、スライスにappendする時にコピーするのは「ポインタ値のサイズ(CPUレジスタ1個分)」のみです。非ポインタ型構造体をスライスにappendする時にコピーするのは「構造体全体のサイズ」です。また、引数渡し返値渡し、メソッドレシーバーアクセスのたびに「非ポインタ型構造体」は「構造体全体のコピー」が発生します。
52
52
 
53
53
 
54
54
 

1

説明修正

2021/03/08 00:26

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -48,11 +48,11 @@
48
48
 
49
49
 
50
50
 
51
- 例示の状況であれば「非ポインタ型構造体」のほうが良いことだらけに見えます。ただ、スライスにappendする時にコピーするのは「ポインタ値のサイズ(CPUレジスタ1個分)」のみです。非ポインタ型構造体をスライスにappendする時にコピーするのは「構造体全体のサイズ」です。
51
+ 例示の状況であれば「非ポインタ型構造体」のほうが良いことだらけに見えます。ただ、スライスにappendする時にコピーするのは「ポインタ値のサイズ(CPUレジスタ1個分)」のみです。非ポインタ型構造体をスライスにappendする時にコピーするのは「構造体全体のサイズ」です。また、引数渡しは返値、メソッドレシーバーアクセスのたびに「非ポインタ型構造体」は「構造体全体のコピー」が発生します。
52
52
 
53
53
 
54
54
 
55
- つまり、構造体定義のサイズでトレードオフが発生します。あるていど構造体定義が肥大化すると利点の効果は消滅します。
55
+ つまり、構造体定義のサイズでトレードオフが発生します。あるていど構造体定義が肥大化すると利点の効果よりもコピーコストの方が問題とて大きくなります。
56
56
 
57
57
 
58
58