如果基数是固定的,可以优化模数除法吗?

时间:2012-10-14 14:48:46

标签: c# optimization

考虑到C#中的以下表达式,并且chunkWidthchunkHeight是预先计算的固定数字,是否可以通过预先计算模数除法的一部分来优化表达式?< / p>

// 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 ];
}

2 个答案:

答案 0 :(得分:3)

要允许变量仅分配一次,您可以向其添加readonly属性。这可能允许一些优化。不过,我不会非常担心基本算术运算的性能,除非事实证明这是一个非常严重的瓶颈。

答案 1 :(得分:1)

即使chunkWidthchunkHeight是固定的和预先计算的字段,但仍然无法进一步优化模运算,因为rowcolumn是需要模数的变量每次执行语句时的操作。