Java Float三角优化

问题描述

我正在编写自己的3D渲染引擎。根据一般知识,我目前正在将浮点值用作我的操作基础。但是,对于旋转矩阵,我需要java.lang.Math库中的三角函数,该函数使用in和output中的双精度值。

我想知道您是否可以使用浮点值来实现三角函数的优化版本,从而提高性能

解决方法

可以。 Mathsin()一样,都是native

您可以在自己的类中编写自己的native方法,然后进行基准测试以查看是否实际获得了任何东西,因为JIT可能知道如何优化标准的Math方法,但无法进行优化自定义native方法。

,

Math.sin()Math.cos()Math.tan()是在汇编中实现的,因此任何自定义实现都将处于严重的劣势。

floatdouble的转换以及相反的转换对性能的影响都可以忽略不计。因此,如果要使用float来节省内存,请继续。但是,考虑到这是Java,我不必担心节省内存。