forループでint変数を使用することが推奨されていることはすでに知っています。パフォーマンスについての好奇心だけで、int C#以外の他の整数型を使用することをお勧めします。
この質問の本当の目的は、T型のジェネリックリストを作成する必要があることです。ここで、Tは、文字列型と整数型のフィールドを含む構造体です。したがって、構造を最適化すると、リスト全体の最適化にすぐに影響すると思います
私のリストはとても長くなると思います...
ありがとう
forループでint変数を使用することが推奨されていることはすでに知っています。パフォーマンスについての好奇心だけで、int C#以外の他の整数型を使用することをお勧めします。
この質問の本当の目的は、T型のジェネリックリストを作成する必要があることです。ここで、Tは、文字列型と整数型のフィールドを含む構造体です。したがって、構造を最適化すると、リスト全体の最適化にすぐに影響すると思います
私のリストはとても長くなると思います...
ありがとう
(通常の時期尚早の最適化警告がこの回答に適用されます。本当に最大のパフォーマンスが必要であると思います。)
実行可能な最小の型を使用してクラスと構造体のサイズを最適化することは、有効な最適化です。あなたの場合、2つの構造体とパディングのために同じサイズになるため、何も得られませstring,int
んstring,byte
。
ただし、一般的に、この手法は有効です。メモリ使用量を節約し、参照の局所性、キャッシュ使用量、およびメモリ帯域幅の削減を実現します。
int
ループカウンター変数を小さいタイプに変更しても、整数よりも小さい整数に対する操作はintに戻るため、何も得られません。
パフォーマンスのことにはあまり敏感ではないかもしれません
私は自分のニーズを確認し、タイプを変更すると最大24 * N *ビットとして節約できることを確認します。ここでNはリストの長さN〜10Kなので、〜240kビットはまったく問題ありません。