3

インライン化された数学ユーティリティ関数をいくつか書いたところですが、テスト中に気づいたのは

let quat = (3, 0, 0, 3)
(quat |||~||| quat)
|> ijk
|> printAn

float 演算子を評価せずに元の値と定数値のみを挿入し、printAn (18, 0, 0)いくつかの をインスタンス化して (ただし、デバッグ モードほど多くはありません)、完全に折りたたまれます。(3.0f, 0.0f, 0.0f, 3.0f)0.0f3.0fTuple

Release(デフォルト構成で、4.5 フレームワークをターゲットとする Visual Studio 2013 Update 4 を使用します。TRACE定数を定義解除しても違いはないようで、どちらも違いはありませんopen Unchecked。)


問題が発生した場合、IL ウィービングを使用して式を折りたたむのは簡単なはずなので、パフォーマンスへの影響についてはあまり心配していませんが、コンパイラが正確に定数を折りたたむことができることに興味があります。

4

0 に答える 0