Android APIの最新のアップデートでは、FloatMath
は次のlint-warningでマークされています。
古いバージョンのAndroidでは、フロートで操作する際のパフォーマンス上の理由から、android.util.FloatMathの使用が推奨されていました。ただし、最新のハードウェアでは、doubleはfloatと同じくらい高速です(ただし、より多くのメモリを必要とします)。最近のバージョンのAndroidでは、JITがjava.lang.Mathを最適化する方法により、FloatMathはjava.lang.Mathを使用するよりも実際に低速です。 。したがって、Froyo以上のみを対象としている場合は、FloatMathの代わりにMathを使用する必要があります。
最近のハードウェアでは、doubleとfloatの速度が同じであることもここで言及されています。
現在作業中のアプリケーション(フローズンヨーグルト以上を対象)で三角関数を使用していますが、高精度は必要ないため、これFloatMath
までフローズンヨーグルトなどを使用しており、ダブルスに切り替える必要はありません。
ただし、「use Math
over FloatMath
」-推奨事項では、floatが望ましい結果である場合にどちらを使用するかは示されていません。
つまり、要するに; どちらが望ましいですか?
float foo = FloatMath.sin(bar);
また
float foo = (float) Math.sin(bar);
ちなみに、私はフローズンヨーグルトデバイスしか持っていないので、自分で適切なベンチマークを行うことはできません。
APIレベル22の時点で、FloatMathクラスは非推奨になり、通常のMathクラスが採用されました。