|
|
1
1
看起来Pentium FPU有正弦波和余弦(fsin和fcos)的本机指令,但没有反正弦指令。因此,我看到的函数可能是反正弦的.NET实现,我理解它使用泰勒级数。这就解释了速度上的巨大差异,所以asin会出现,而sin不会。(或者说cos或sqrt——这些也是本机函数)。 很久以前我就直接对x86 FPU进行了编码。很久以前,我想它一定是一个8087-无论如何,那时候唯一的三角函数是偏切线! 因此,优化的下一个工作是尽可能地从哈弗斯线中展开弧和平方根。结果用于简单的大于/小于比较(排序等);并与“固定”值进行比较。在这两种情况下,应该可以打开它们。固定值变为平方(sin(fixed)),并与sqrt中的值进行比较。 我仍然认为trig标识可能是一个有用的优化,但它肯定会使代码复杂化,并引入错误的可能性。 |
|
|
2
0
是的,一定要打开sqrt和arc sine。反三角函数几乎总是比前向函数慢,因为前向三角函数通常在FPU中实现。 |
|
|
KWMuller · 如何在Netbeans中访问调用计数? 8 年前 |
|
|
Tim · 测量所有目标(包括相关目标)的xcodebuild持续时间 8 年前 |
|
|
Bram · 如何启动和停止性能采样 8 年前 |
|
|
GoodGoodMan · 如何测量C代码中方法的cpu和内存使用率 8 年前 |
|
|
JumpingJezza · 读取2D矩阵的最快方法 8 年前 |
|
|
Mayank · 作为后台服务运行的行分析python代码 9 年前 |