当前位置: 首页 > news >正文

.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 \u0026amp; x86)上的改进非常显著,性能提升在14%到23%之间。另一方面,在Linux x64上的性能提升在2%到5%之间。这一点很重要,这让我们知道启用PGO并没有导致在Linux上的性能退化,同时,这也表明将来仍然有很大的改进空间。

\\

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

\\

查看英文原文:Profile Guided Optimization Comes to .NET Core

\\

相关文章:

  • OneDrive 消费者版本全面缩减免费存储容量
  • Oracle 为什么必须收购 Salesforce?
  • 杰和科技:深度客制,从根本上实现客户价值创造
  • 《Android程序设计》一第3章-3.0 Android应用的主要组件
  • Linux-权限管理(ACL权限)
  • Dom4j解析xml内容——(三)
  • javascript面向对象之创建对象
  • 由中序和后序重建二叉树
  • SpannableString实现TextView的链接效果
  • jquery.validate.js使用之自定义表单验证规则
  • 特斯拉Gigafactory将结合Silevo和松下HIT太阳能技术
  • 007-df和du的使用
  • thrift TTransport
  • 《浅谈图论模型的建立与应用》
  • 从顶层设计出发 联想集团与泛华集团共画中国智慧城市蓝图
  • CSS盒模型深入
  • Java 网络编程(2):UDP 的使用
  • java多线程
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • miaov-React 最佳入门
  • Python爬虫--- 1.3 BS4库的解析器
  • React-Native - 收藏集 - 掘金
  • 包装类对象
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 讲清楚之javascript作用域
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 手机端车牌号码键盘的vue组件
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • linux 淘宝开源监控工具tsar
  • MPAndroidChart 教程:Y轴 YAxis
  • 整理一些计算机基础知识!
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #QT(一种朴素的计算器实现方法)
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (9)目标检测_SSD的原理
  • (第27天)Oracle 数据泵转换分区表
  • (独孤九剑)--文件系统
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)VC++中ondraw在什么时候调用的
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .net 简单实现MD5
  • .NET 中让 Task 支持带超时的异步等待
  • .netcore 获取appsettings
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .net操作Excel出错解决
  • .net经典笔试题
  • .net生成的类,跨工程调用显示注释
  • .Net下的签名与混淆
  • /etc/motd and /etc/issue