.NET Core引入性能分析引导优化

“性能分析引导优化(Profile Guided Optimization,缩写PGO)”是一项原生编译技术,可用于生成高度优化的代码。它通过一个两步编译过程实现优化——用第一步记录相关执行信息,然后第二步用那些信息构建一个改进过的二进制文件。据来自微软的Daniel Podder和Bertrand Le Roy介绍,从历史上看,该过程的好处是改进了二进制代码在镜像中的位置,产生了更好的行为和引用集局部性。

在.NET Core中实现PGO的一个重要原因是,用户不需要采取任何特殊的措施就可以从PGO受益,因为它是应用到.NET Core运行时和JIT编译器的。因此,它会针对特定的应用程序根据其使用情况进行恰当的改进,而托管应用程序会自动受益。

Podder和Le Roy表示,对于这个版本,PGO优化已经应用到.NET Core运行时的原生部分,但将来,他们会把这些优化应用到.NET Core技术栈的托管组件。和针对.NET Core 1.1的PGO优化只适用于Windows x86不同,这些最新的优化已经扩展到了Windows x64和Linux x64上。

由于一个.NET Core应用程序超过75%的启动时间都消耗在coreclr.dllclrjit.dll上(在Linux上是libcoreclr.solibclrjit.so),所以那是团队设法度量并改进性能的地方。根据微软的基准测试,在Windows平台(x64 & x86)上的改进非常显著,性能提升在14%到23%之间。另一方面,在Linux x64上的性能提升在2%到5%之间。这一点很重要,这让我们知道启用PGO并没有导致在Linux上的性能退化,同时,这也表明将来仍然有很大的改进空间。

按照微软新闻发言人的说法,Windows和Linux被视为关键的部署目标,因此,它们会首先引入PGO技术。对于其他的平台,如macOS,他们将来会根据用户反馈进行考虑。

原文地址:http://www.infoq.com/cn/news/2017/08/pgo-NETCore


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手把手教你搭建Maven项目

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。今天给大家分享的是“手把手教你买基金”,奥!!不对,不好意思,是“手把手教你使用idea搭建Maven项目”!前言大家都知道&#x…

实例!使用Idea创建SSM框架的Maven项目

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。前言书接前文,昨天带着大家下载且配置了maven,以及在idea中创建maven项目,今天,我们就结合ssm框架,在idea中实现一个增删改查案例。昨天的…

如何给你的Idea换一个好看漂亮的主题

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。前言大家都知道,idea里面自带两种主题样式,一种是灰色的,另一种是黑色的。你有没有想过换个其他的主题颜色用用呢?如果想,那么今天&#…

腾讯游戏使用Microsoft Service Fabric案例

本文转载自公众号-云就该这么玩,微软官方的地址链接:https://customers.microsoft.com/en-us/story/tencent-telecommunications-azure-service-fabric-windows-server-en 根据研究公司Newzoo的报告估计,全球游戏收入在2017年将达到1080亿美…

div中的table内容过多时不超出div的范围解决方法

转载自 div中的table内容过多时不超出div的范围解决方法 问题描述: 在做界面展示时,table的内容过多,超出div的大小,看着table的边框盖过了div的边框,不美观。 问题解决: 因为页面整体的布局美工都设计…

属性编辑器未在PropertyEditorManager中注册?

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。前言好不容易将代码都写完了,结果一运行,报错!!HTTP Status 500 - Unable to convert string "${book.btime}" to class "java.util.…

DDD理论学习系列(13)-- 模块

1. 引言 Module,即模块,是指提供特定功能的相对独立的单元。提到模块,你肯定就会想到模块化设计思想,也就是功能的分解和组合。对于简单问题,可以直接构建单一模块的程序。而对于复杂问题,则可以先创建若干…

快速搭建Springboot项目的两种方式!!

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。前言Springboot的特点就是简单、快速和方便,使用idea不到一分钟就可以快速搭建springboot项目,并且,在这里,你不用写spring的那些乱七八糟的xml文件&…

简化springboot部署,太灵活方便了!

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。前言Springboot项目的编写与开发想必大家都会了,是不是和我们之前的项目比起来,简单方便了许多?今天,我们来看看除了可以直接在idea中部署和运行项目…

月旦评 之 DevOps招贤令

公元164-182年间,汝南平舆的许氏兄弟于每月初一品评人物,褒贬时政,被称为“月旦评”。所谓“子治世之能臣,乱世之奸雄也”这句许邵评价曹操的话也是来自于“月旦评”;《军事联盟》中杨修与司马懿的唇枪舌剑的精彩场景相…

springboot中配置mybatis别名该怎么写?

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。今天给大家分享的是,在springboot配置文件中,如何给mybatis实体类起别名。在以前,我们写mybatis的时候,有一个文件为mybatis-config.xml,…

Redola.Rpc 集成 Consul 服务发现

Redola.Rpc 解决了什么问题? Redola.Rpc 是一个使用 C# 开发的 RPC 框架,代码开源在 GitHub 上。目前版本仅支持 .NET Framework 4.6 以上版本,未来待系统稳健后再考虑移植 .NET Standard 和 .NET Core。 Redola.Rpc 在 0.3.2 版本中&#…

springboot+springm vc+mybatis实现增删改查案例!

大家好,我是雄雄,欢迎关注微信公众号【雄雄的小课堂】。前言最近这几天都在看关于springboot的内容,每天新会获得点新收获,并且都总结发在公众号中;最后经过不懈努力,不断查找相关网页,解决各种…

<table/>默认适应内容宽度造成滚动条不显示的解决方法

一、现象重现 <html><head></head><body> <table style"width: 100%;"> <tbody> <tr> <td style"width: 50%;overflow-x:auto"> <pre> 瞎子打灯笼一个盲人到亲戚家做客&#xff0c;天黑后&#xf…