3

我需要使我的应用程序中的一些代码被预先JITted。该场景是在 Windows Phone 下运行的 XNA 游戏。当爆炸第一次发生时,当实现爆炸物理建模的方法被 JITted 时,会有一个明显的停顿。我知道这一点,因为这个问题也发生在 Windows 版本上,并且在程序集被 NGEN 时消失。我还使用了运行时 JITting 的方法,这里的一些答案中提到了该方法,起源于 CodeProject(使用反射和PrepareMethod)。

但是,我不能使用 NGEN,因为它是一个 Windows Phone 应用程序。我也不能使用PrepareMethod标记为的其他方法SecurityCritical,并且您不能在 Windows Phone 上调用它。

我不介意这可能需要一些时间,因为在显示加载屏幕时初始化将在单独的线程上发生。

是否有任何优雅的方法可以达到类似的结果,如果失败了,还有任何方法吗?

4

1 回答 1

3

到目前为止,在 Windows Phone 中,您唯一能做的就是强制该方法被 JITed 是通过实际调用它。

我会在您的应用程序加载时调用该方法,也许是在它显示加载屏幕或其他内容时。这样当用户在游戏中实际点击它时,JIT 已经被处理好了。

于 2012-07-19T21:06:56.867 回答