C++简介
在代码的预处理器部分使用#pragma intrinsic
命令,可以极大地提高大多数数学函数调用的速度。
#pragma intrinsic(sqrt, pow)
上述代码允许大多数数学函数调用直接发送到数学协处理器,而不是发送到函数堆栈。
问题:
有没有办法在C#中做到这一点?除了重写内置函数以执行类似操作之外。例如,常见的是进行二次幂计算,因此这种方法是适当的,但这不是我要找的内容:
public double Pow2(double value)
{
return (value * value);
}
SQRTSD
或MULSD
指令替换为Math.Sqrt(x)
和Math.Pow(x, 2)
。虽然我不知道它目前是否这样做。如果需要进行微观优化,C#/.NET并不是正确的工具。 - Cory Nelsonif (sqrt(x*x + y*y) < r)
可以通过两边平方来更快地完成:if (x*x + y*y < r*r)
,因为额外的乘法比开平方要快得多。你正在进行什么样的计算? - Ben Voigt