当前位置:  开发笔记 > 编程语言 > 正文

有没有办法改变.NET JIT编译器以支持性能而不是编译时间?

如何解决《有没有办法改变.NETJIT编译器以支持性能而不是编译时间?》经验,为你挑选了1个好方法。

我想知道是否有任何方法可以通过指定更深入优化的首选项来更改.NET JIT编译器的行为.如果不这样做,如果它可以进行某种配置文件引导的优化,如果它还没有,那将是很好的.



1> FlySwat..:

这是在编译程序集时设置的.有两种类型的优化:

IL优化

JIT本地代码质量.

默认设置是这个

 /optimize- /debug-

这意味着未经优化的IL和优化的本机代码.

 /optimize /debug(+/full/pdbonly) 

这意味着未经优化的IL和未经优化的本机代码(最佳调试设置).

最后,要获得最快的性能:

/optimize+ /debug(-/+/full/pdbonly)

这产生了优化的IL和优化的本机代码.

在生成未经优化的IL时,编译器将在整个代码中插入NOP指令.这使代码更容易调试,允许在控制流指令上设置断点,例如for,while,if,else,try,catch等.

无论如何,CLR在优化代码方面做得非常出色.一旦方法被JIT控制,调用上的指针或callvirt指令就直接指向本机代码.

此外,CLR将利用JIT代码时可用的任何架构技巧.这意味着通过JIT运行的程序集将比使用Ngen预编译的程序集运行得更快(尽管启动时间稍慢),因为NGen将为所有平台编译,而不是利用任何技巧.


+1很好.您在IDE中确切地设置了这些值吗?
推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有