【问题标题】:Trigonometric functions optimization performance gains in JavaJava 中的三角函数优化性能提升
【发布时间】:2013-12-16 21:56:12
【问题描述】:

与 Java 中的标准方法相比,三角函数优化的性能提升是多少?例如:Fast transcendent / trigonometric functions for Java 我找到了一些执行类似任务的方法和库。

【问题讨论】:

  • 如果您不了解它的工作原理,那么您极不可能需要这些功能。内置函数可能会更好地记录和维护。
  • @Builder_K 我想首先考虑性能提升,所以我知道是否值得深入研究这个主题。

标签: java function optimization trigonometry


【解决方案1】:

也是依赖于JDK实现的,StrictMath中的函数都是原生的。

其中一种方法是使用从泰勒级数子集派生的一些函数。

我记得另一种有趣的函数计算方法。 假设您需要进行 3d 旋转,并且所有参数都在 limited 整数子集 (0..180)/PI 中。 因此,您构建了预先计算的值表,然后使用它。

double[]result=new double[180];
for(int i=0; i<180; i++) results[i]=Math.sin(i/Math.PI);//end of init
double sin(int value){return result[i];}

【讨论】:

  • 很好,但这并不能回答问题:性能提升是多少?
  • 从哪个方法获得?您可以使用 CPU sin - 通过直接单次调用 CPU 获得性能增益,使用另一种近似值,通过较少数量的算术运算获得性能增益,使用预先计算的值,从直接内存调用而不是计算中获得性能增益。
  • 详细说明。我猜你在这方面有一些实践经验,所以你可以发表你的观察。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 2015-11-04
相关资源
最近更新 更多