0

C#で次の式があり、chunkWidth事前chunkHeightに計算された数値が固定されている場合、モジュロ除算の一部を事前に計算することで式を最適化することは可能ですか?

// Once assigned these guys never change
private int _chunkWidth;
private int _chunkHeight;

// This function needs to be super optimal!
SomeObject LookupObject(int row, int column) {
    int index = (row % _chunkHeight) * _chunkWidth + (column % _chunkWidth);
    return _objects[ index ];
}
4

2 に答える 2

3

変数が一度だけ割り当てられるようにするには、変数にreadonly属性を追加します。これにより、いくつかの最適化が可能になる場合があります。ただし、これが非常に厳しいボトルネックであることが証明されない限り、基本的な算術演算のパフォーマンスについてそれほど心配することはありません。

于 2012-10-14T14:51:25.920 に答える
1

chunkWidthとが固定で事前計算されたフィールドであっても、 とはステートメントが実行されるたびにモジュロ演算を必要とする変数であるためchunkHeight、モジュロ演算をさらに最適化することはできません。rowcolumn

于 2012-10-14T14:51:09.213 に答える