前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >六、CLR下的托管代码应用程序与非托管代码程序之间的性能对比

六、CLR下的托管代码应用程序与非托管代码程序之间的性能对比

作者头像
郑小超.
发布2018-03-29 10:50:18
8650
发布2018-03-29 10:50:18
举报
文章被收录于专栏:GreenLeavesGreenLeaves

1、托管程序二次编译的问题,以及微软做的优化

五、CLR加载程序集代码时,JIT编译器对性能的产生的影响中介绍了CLR下托管应用程序的二次编译对性能产生的影响.事实上,在IL编译成本机代码的时候的时候 确实会影响性能,也确实会分配动态内存.

但是,在微软做了大量的性能优化工作之后,将这些额外的开销保持在最低的限度之内.

2、托管程序的实际性能

事实上,托管程序的性能实际上要比非托管应用程序要好,举个例子,当JIT编译器在运行时将IL代码编译器编译成本机代码的时候,编译器对执行环境的认识比非托管编译器更深刻。

如果JIT编译器没有使托管应用程序达到应有的效果,如果需要进一步确认,有两种方法:

(1)、.Net Framework SDK提供的NGen.exe工具

该工具将程序集的所有的IL代码编译成本机代码,并将这些本机代码保存到一个磁盘文件中,在运行时加载程序集时,CLR自动判断是否存在该程序集的预编译版本。如果是,CLR就加载预编译版本.

注:NGen.exe对最终执行环境的预设是很保守的,所以,NGen.exe生成的代码不会像JIT编译器生成的代码那样进行高度优化。

(2)、使用ProfileOptimization类

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档