CodeSnippet.Cn
代码片段
Csharp
架构设计
.NetCore
西班牙语
kubernetes
MySql
Redis
Algorithm
Ubuntu
Linux
Other
.NetMvc
VisualStudio
Git
pm
Python
WPF
java
Plug-In
分布式
CSS
微服务架构
JavaScript
DataStructure
Shared
NGen--表面提高性能,实则应用场景甚少的性能提高工具
0
VisualStudio
Plug-In
Microsoft
Kelly
发布于:2021年06月09日
更新于:2021年06月09日
148
#custom-toc-container
### Gen使用 可以将应用程序编译成机器代码,这样将一个已经编译成机器代码的应用程序安装到用户的计算机上时,计算机就可以直接运行,无需再次将中间语言(IL)编译成本机代码,因此可以提高应用程序的启动速度。 ### BUT 但实际上,CLR为什么要弄一个中间语言(IL)呢?为什么不直接编译成机器代码呢?不就是为了要根据CPU的版本来对中间语言进行优化么,所以如果用了NGen,相当于抛弃了从IL编译到机器代码这个过程的优化。 ### AT THE SAME TIME 即使用了NGen,这也只能作为备选方案,还是需要有IL的支持,以防止机器代码不可用。并且反射等也需要原数据和IL。 ### MOST IMPORTANT NGen很有可能不可用,比如CLR版本发生改变(相当于.Net Framework版本改变),CPU升级等。 不过CLR版本发生改变,NGen是有其他解决方案的哈。 ### SUMMARY NGen只是提高了应用程序的**启动**速度,但是丢失了根据特定CPU指令进行的优化,以及对执行环境的一些假设,所以导致了**执行性能**不如用JIT编译后的效果。 所以,对于服务器端应用程序,几乎毫无意义,谁会为了启动速度而丢失服务器执行性能呢。
这里⇓感觉得写点什么,要不显得有点空,但还没想好写什么...
返回顶部
About
京ICP备13038605号
© 代码片段 2024