安装Visual 2015 RC1之后,我加载了一个遗留的ASP.NET项目,并将.NET版本更改为4.6。该项目运行良好,但网站的加载仍然像往常一样慢。我原以为RyuJIT会来,但显然不是。
我看了一下关于这条线的RyuJIT,并没有看到有任何方法描述的RyuJIT的任何痕迹。
空控制台项目也会出现同样的问题。我无法在输出窗口、模块窗口或正在运行的windows任务中看到Ryujit。
因此,要么无法检测到RyuJIT,因为它以前是在预览中,要么是它没有运行。不管怎样,我都被困住了。
如何验证RyuJIT是否在VS 2015中运行,如果不是,我需要做些什么才能让它运行?
发布于 2015-05-17 21:25:50
首先,转到项目的设置、调试选项卡,并确保启用了本机代码调试。这使您能够在Visual的Modules窗口中看到本机可执行文件和托管可执行文件。
现在在调试或发布模式下运行程序,并打开Modules窗口。你会看到两件事中的一件:
compatjit.dll是在启用回退机制时加载的。否则它就没上膛了。
请注意,如果您安装了.NET 4.6 (也称为.NET 2015),那么即使您针对该框架的旧版本,默认情况下也将使用RyuJIT。
关于RyuJIT和JIT64。当前,JIT64生成的代码本身比RyuJIT生成的代码要快。因此,不要期望在这方面的性能改善。另一方面,编译时间也各不相同。根据微软的说法,RyuJIT的编译时间可以比JIT64快30%,慢可以快15%。因此,也不要期望这方面的性能有所提高。
然而,当.NET 2015发布时,情况可能会发生一些变化。
Note
如果目标平台是“任意CPU",则必须不选中Build选项卡中的”偏好32位“复选框。否则,将使用x86 JIT。
发布于 2015-05-12 10:13:06
这就是你要的
安装后,有两种方式打开RyuJIT。如果您只想为一个应用程序启用RyuJIT,请设置一个环境变量: COMPLUS_AltJit=*。如果要为整个计算机启用RyuJIT,请将注册表项HKLM\SOFTWARE\Microsoft.NETFramework\AltJit设置为字符串"*“。这两种方法都会导致64位CLR使用RyuJIT而不是JIT64。这两种设置都是临时设置--安装RyuJIT不会对您的计算机进行任何永久更改(除了在目录中安装RyuJIT文件外,也就是说)。
但是在默认情况下应该激活它。
.NET Framework4.6包含新的64位进程的JIT编译器,称为RyuJIT.默认情况下它是启用的。它仍然是预览版本,因此您可能会发现尚未解决的问题。
出于测试目的,如果您对RyuJIT设置了任何异常,则可以在app.config中使用一个设置关闭它。这使用了较旧的JIT64。
<configuration>
<runtime>
<useLegacyJit enabled="1">
</runtime>
</configuration>但是,RyuJIT CTP5目前无法在Visual "14“CTP4上工作。无论如何,您不需要它,因为RyuJIT默认是在Visual "14“CTP4上启用的。)( Visual "14“RyuJIT中的CTP4版本稍早于此CTP,但没有太多。)
取自RyuJIT CTP5:更接近船运,并提供更好的SIMD支持
我在运行时找到了一个博客来确定使用的JIT,但是它考虑到了den JIT64编译器中已知的一个bug。示例代码发布为这里。我不知道这是否一个可靠的方法来确定它。
发布于 2015-05-13 07:26:00
当您编译代码时,RyuJIT会自动激活,这只是一个在64位模式下运行的编译器,通过对RAM的访问,可以将编译速度提高30%,而在JIT编译器上花费的时间只是启动时间的一个组成部分,所以应用程序的启动速度不会增加两倍,因为JIT的启动速度是原来的两倍。
您可以检查当前内存状态和使用空闲可用内存运行进程,如果足够,则必须运行得更快,否则会考虑内存分配的时间问题。
https://stackoverflow.com/questions/30028054
复制相似问题