3

アプリケーションの一部のコードを事前にJITする必要があります。シナリオは、WindowsPhoneで実行されているXNAゲームです。爆発が最初に発生したとき、爆発の物理モデリングを実装するメソッドがJITされている間、顕著な一時停止があります。この問題はWindowsビルドでも発生し、アセンブリがNGENされると消えるので、私はこれを知っています。また、実行時にJITを実行する方法を使用しました。これは、ここでいくつかの回答に記載されており、CodeProjectで発生します(リフレクションとを使用PrepareMethod)。

ただし、NGENはWindows Phoneアプリであるため、使用できません。PrepareMethodまた、とマークされている他の方法を使用することはできません。またSecurityCritical、WindowsPhoneではそれを呼び出すことはできません。

ロード画面が表示されている間、初期化は別のスレッドで行われるため、時間がかかる場合があるという事実を気にしません。

同様の結果を達成するための洗練された方法はありますか?それができない場合は、方法はありますか?

4

1 に答える 1

3

現在のWindowsPhoneでは、メソッドを強制的にJITすることは、実際に呼び出すことだけです。

アプリケーションがロードされている間、おそらくロード画面などが表示されているときに、メソッドを呼び出します。そうすれば、ユーザーがゲーム中に実際にそれを打ったときに、JITはすでに処理されています。

于 2012-07-19T21:06:56.867 に答える