考虑到C#中的以下表达式,并且chunkWidth
和chunkHeight
是预先计算的固定数字,是否可以通过预先计算模数除法的一部分来优化表达式?< / 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 ];
}
答案 0 :(得分:3)
要允许变量仅分配一次,您可以向其添加readonly
属性。这可能允许一些优化。不过,我不会非常担心基本算术运算的性能,除非事实证明这是一个非常严重的瓶颈。
答案 1 :(得分:1)
即使chunkWidth
和chunkHeight
是固定的和预先计算的字段,但仍然无法进一步优化模运算,因为row
和column
是需要模数的变量每次执行语句时的操作。