lep*_*pie 18 jit multicore .net-4.5
.NET 4.5的新性能增强之一是引入了"MultiCode JIT".
有关详细信息,请参见此处
我试过这个,但似乎对我的申请没有影响.
我感兴趣的原因是我的应用程序(IronScheme)需要很长时间才能启动,如果不是NGEN,这意味着启动时会涉及相当数量的JIT'ng.(NGEN时为1.4秒vs 0.1秒).
我已经按照如何启用它的说明进行操作,我可以看到创建了一个"小"(4-12KB).但是在随后的启动中,似乎对改善启动时间没有任何影响.它仍然是1.4秒.
有没有人在实践中看到(或制作过)这项工作?
此外,对哪些代码进行"跟踪"有任何限制吗?例如:集加载上下文,瞬态组件等我问这个作为创建的文件似乎永远不会长大,但我其实生成的代码中有相当(在瞬态组装).
我遇到的一个错误是,SetProfileRoot似乎不理解/作为路径分隔符,请确保使用\.
Dan*_*lor 21
我们在微软使用的经验法则是,Multicore JIT可以让你在NGEN启动性能的一半.因此,如果您的应用程序使用NGEN在0.1秒内启动而在没有NGEN的情况下启动1.4秒,我们预计多核JIT启动大约需要0.75秒.
话虽这么说,我们必须设置一些限制来保证程序执行顺序是否与MCJ相同.MCJ有时会暂停后台线程等待由前台线程加载模块,并且将中止背景编译,如果有一个组件解决或模块解决事件.
如果您想了解发生了什么,你的情况,我们有MCJ功能的ETW(Windows事件跟踪)的仪器,我们将很快发布一个版本的PerfView的,这将能够收集到这些事件,如果你把一个跟踪您的应用启动.
更新: PerfView已更新,可以显示后台JIT信息.以下是使用最新版本(1.2.2.0)进行诊断的步骤:
Run Code Online (Sandbox Code Playgroud)This process uses Background JIT compilation (System.Runtime.ProfileOptimize) Methods Background JITTed : 2,951 Percent # Methods Background JITTed : 52.9% MSec Background JITTing : 3,901 Percent Time JITTing is Background : 50.9% Background JIT Thread : 11308
您可以单击"查看原始背景Jit诊断"以查看Excel中的所有MCJ事件.我忘了问一个问题:你是在多核机器还是多核VM上运行它?在仅具有单个逻辑处理器的VM中测试MCJ是一个常见错误.
小智 10
Activator.CreateInstance在启动期间打电话似乎杀了MCJ?
或者更确切地说,触发了大会决议,这似乎完全阻止了MCJ.之后永远不会工作.也许MSDN文档应该提到这一点.
| 归档时间: |
|
| 查看次数: |
4419 次 |
| 最近记录: |