私は、ユニティーが浮動小数点でフードの下で最適化を行う場合、誰もが頭の上を知っていたのだろうかと思っていました。unity3Dはいつでもフロートを最適化しますか?
ので、基本的に、それ自体で、最適化の一種である代わりに、小数の山車を、使用されるが、彼らはまだに使用することができますulong
の倍の資源だと思われるので、C#math
機能をラップ自分mathf
機能値を格納し、次に10の係数で除算します。
フレームごとに数百から数千の浮動小数点数を扱っている物理計算を作成すると、私たちが得ることのできるすべてのオプションがほしいと思うようです。
私はリンクを提供するポインタを使用したいと言われていますが、私は安全でないで実行中に販売されていません。
http://answers.unity3d.com/questions/804103/how-to-enable-unsafe-and-use-pointers.html
実際にC#の数学関数をラッピングしているかどうかはわかりません。彼らはモノCLRで独自のネイティブ実装を行い、 'MathF'がそれらの1つであれば驚くことはありません。 –
また、コードをプロファイルして、 'MathF'関数が実際にどこのコードを使っていたのか、それとも最も時間を費やしていると仮定しているのかが分かりましたか? –
10進数でfloatを使用していますか?確かに?二重ではない?ストレージの乗算とその値を取得するための除算が必要な場合、なぜulongを最適化するのでしょうか?ポインタがより速くなると思うのはなぜですか?値の周りを渡すため?まだ4バイトのデータ。そして、あなたはまだアクションを実行するためにレジスタに値を配置する必要があります。あなたが考えている解決策に問題を見つけようとしているかもしれません。 – Everts