Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >可以在构建之间持久化MPGO数据吗?

可以在构建之间持久化MPGO数据吗?
EN

Stack Overflow用户
提问于 2012-04-30 02:52:09
回答 1查看 231关注 0票数 0

我刚刚阅读了一个发布关于MPGO的文章 (托管概要引导优化),描述的过程如下:

  1. 获得一台具有Visual 11极限测试并安装应用程序的计算机。
  2. 使用必要的参数运行MPGO工具(作为管理员): MPGO -scenario MyLargeApp.exe -AssembyList *.* -OutDir C:\Optimized\优化的IL程序集是在C:\Optimized文件夹中创建的。
  3. 运行NGen工具(作为管理员),为每个应用程序DLL:NGEN.exe myLargeApp.exe提供必要的参数
  4. 运行您的应用程序-它现在将使用优化的本机映像。

这似乎意味着您必须对已发布的产品中的二进制文件执行指导方案。

对我来说,在构建过程中需要手动干预是没有意义的。是否有方法执行指导方案一次,然后提交生成的数据,以便在以后的构建中自动插入到编译的程序集中?

EN

回答 1

Stack Overflow用户

发布于 2012-06-06 20:57:03

几年前,我在微软的一个构建实验室工作,负责处理很多托管代码。让我强调一下,这是很多年前,在管理的MPGO之前是公开的。但在那时,他们会使用旧的概要数据(通常是前一天的数据,但有时长达一周)来“部分优化”一组内部二进制文件。我不能和数字说话,但如果没有好处,我们就不会这么做了。这些“部分优化”的二进制文件将只用于自动烟雾测试,并且只用于内部使用。只有完全优化的二进制文件(其配置文件数据是从同一个构建中收集的)才会被释放。

我不是专家,但据我所知,MPGO指南数据使用方法签名(比如由调试符号使用)和文件偏移量,它们在构建之间不稳定。然后问题就变成:有多少百分比是稳定的,可以得到一些好处?

让我们假设一个方法的名称更改了一个经常使用的方法。当然,旧二进制文件中的“热”页(因为该方法)在新二进制文件中找不到,经常使用的页面可能会放在优化的二进制文件的“末尾”,而这些代码是从未使用过的。在问题的另一面:有多少%的方法是从一个日常构建中重命名的?(或者更频繁地接触CI?)我猜不到1%。

让我回到内部构建。当然,收集新的perf配置文件数据需要一段时间,所以时间敏感的内部函数(需要在构建之后运行)将使用部分优化的构建风格运行,因为该构建将在完全优化的构建风格之前几个小时完成。让我解释一下为什么花了这么长时间。IIRC我们使用了概要文件'passes',其中核心库场景首先运行,这些二进制文件被优化,而优化的核心被使用在后来的‘端到端’场景中(即服务器端web服务,或客户端GUI场景)。因此,核心库将被多次分析和优化。可以猜到,所有这些都需要时间,这就是为什么“完全分析/优化”构建需要很长时间的原因。

希望这能帮上忙。

这个问题让我想起了32位DLL重基问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10382471

复制
相关文章
yii2 在控制器中验证请求参数的使用方法
针对每个请求单独写个Model , 定义验证规则并进行验证。 缺点:写好多参数验证的Model 类。
用户7353560
2021/11/07
3.7K0
Matlab中弧度转角度、角度转弧度
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148429.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/02
1.5K0
Matlab中弧度转角度、角度转弧度
在 ASP.NET MVC 中使用异步控制器
可以通过 AsyncController 类编写异步操作方法。 可以对长时间运行的、非 CPU 绑定的请求使用异步操作方法。 这样可避免在处理请求时阻塞 Web 服务器执行工作。 AsyncController 类通常用于长时间运行的 Web 服务调用。 本主题包含以下各节: 线程池处理请求的方式 处理异步请求 选择同步操作方法或异步操作方法 将同步操作方法转换为异步操作方法 并行执行多个操作 将特性添加到异步操作方法 使用 BeginMethod/EndMethod 模式 类参考 与本主题对应的包含源代码
逸鹏
2018/04/10
1.9K0
使用Kubernetes设备插件和RuntimeClass在入口控制器中实现硬件加速SSL/TLS终止
Kubernetes入口(Ingress)是一种将集群服务连接到集群外部的方法。为了正确地将流量路由到服务后端,集群需要一个入口控制器。Ingress控制器负责根据Ingress API对象的信息为后端设置正确的目的地。实际流量通过代理服务器路由,代理服务器负责诸如负载平衡和SSL/TLS(稍后的“SSL”指SSL或TLS)终止等任务。由于涉及加密操作,SSL终止是一个CPU密集型操作。为了从CPU中卸载一些CPU密集型工作,基于OpenSSL的代理服务器可以利用OpenSSL引擎API和专用加密硬件的优势。这将为其他事情释放CPU周期,并提高代理服务器的总体吞吐量。
CNCF
2019/12/04
1.3K0
使用Kubernetes设备插件和RuntimeClass在入口控制器中实现硬件加速SSL/TLS终止
在微控制器和物联网上使用JavaScript:SSL / TLS
在今天的这篇文章中,我们回到Particle Photon上来解决他的一个最大的缺点:缺少TLS支持,接下来我们将详细介绍如何添加这一功能。
未来守护者
2018/04/20
3.6K13
在微控制器和物联网上使用JavaScript:SSL / TLS
游戏开发中的数据表示
通过IDL语言去定义一个.PROTO文件,然后PROTOBUF会对各个平台提供PROTO C这么一个编译器,然后PROTO C编译器我们可以指定我要生成对应的C#的DR的表示还是对应的C++的DR表示。
Zoctopus
2018/08/10
1.9K0
游戏开发中的数据表示
使用 CVE-2021-43893 在域控制器上删除文件
2021 年 12 月 14 日,在Log4Shell混乱期间,微软发布了CVE-2021-43893,这是一个影响 Windows 加密文件系统 (EFS) 的远程提权漏洞。该漏洞归功于Google Project Zero的James Forshaw,但可能是由于 Log4Shell 的氛围,该漏洞几乎没有引起注意。
Khan安全团队
2022/02/15
1.5K0
Layui 数据表格方法渲染中的复杂表头简单使用示例
{ "code": 0, "msg": "用户信息", "count": 5, "data":[ { "id": 1, "name": "张三", "sex": "女", "prov": "河南", "city": "郑州市", "dist": "金水区" }, { "id": 2, "name": "李四", "sex": "男", "prov": "河南", "city": "郑州市", "dist": "金水区" }, { "id": 3, "name": "王五", "sex": "女", "prov": "河南", "city": "郑州市", "dist": "二七区" }, { "id": 4, "name": "赵六", "sex": "女", "prov": "河南", "city": "开封市", "dist": "龙亭区" }, { "id": 5, "name": "小七", "sex": "男", "prov": "河南", "city": "开封市", "dist": "鼓楼区" } ] }
很酷的站长
2023/02/16
2K0
Layui 数据表格方法渲染中的复杂表头简单使用示例
使用VBA创建Access数据表
导读: 本期介绍如何在Access数据库中创建一张空数据表。下期将介绍如何将工作表中的数据存入数据库对应的表中,随后还将介绍如何从数据库的表中取出数据输出到Excel工作表中,以及如何在导入一个文本文件时(如信贷台账.csv),自动建立数据库,创建表,并将记录导入到数据库表中,完成Excel与Access的完美交互。 演示: 在下面的演示中,运行代码后,你将看到,在数据库中,创建了一张名为的空表,有4个字段。 代码: Code: Option Explicit '需手动在VBE窗口,工具-引用 Mi
企鹅号小编
2018/01/25
5.5K0
Git版本控制器使用
版本控制器 """ 完成 协同开发 项目,帮助程序员整合代码 软件:SVN 、 GIT git:集群化、多分支 """ git 简介 """ 什么是git:版本控制器 - 控制的对象是开发的项目代码 代码开发时间轴:需求1 > 版本库1 > 需求2 > 版本库2 > 版本库1 > 版本库2 """ git使用 安装 # 1.下载对应版本:https://git-scm.com/download # 2.安装git:在选取安装路径的下一步选取 Use a TrueType font in all co
GeminiMp
2020/01/15
4300
Git版本控制器使用
Python在SQLite数据库中动态创建数据表的思路与实现
在管理信息系统或者动态网站开发时,离不开数据库的使用。以SQLite数据库为例,系统运行时要求数据库和对应的数据表已存在,一种方案是提前建好数据库和所有表,再一种方案是系统初始化时自动创建数据库或者相应的数据表。本文介绍第二种方法的思路和实现,自动测试数据库中是否存在某个表,如果不存在就创建。对于SQLite数据库来说,关键是系统表sqlite_master,这个表中记录了所有用户表的信息。例如:
Python小屋屋主
2018/12/26
4.7K0
DC电源模块在工业控制器中的重要性
DC电源模块在工业控制器中起着非常重要的作用,它是实现工业控制器运转所必需的组成部分。
河北稳控科技
2023/08/10
1770
DC电源模块在工业控制器中的重要性
eos源码赏析(十九):EOS智能合约之合约中数据表中RAM的使用
上周eos更新版本至1.2.4,其中修复了ram使用权限的相关缺陷。当时在开发者群内也引发了一些讨论。那么我们今天来看看最新的版本在ram使用权限上到底做了哪些改动呢。涉及到权限的问题自然都是很严重的问题,因为它关乎到用户的资金安全,恰如这次关于ram的使用。
用户2569546
2021/11/23
6830
php中Laravel控制器详解
Laravel中的请求使用的是symfony/http-foundation组件,请求里面放了$_GET,$_POST,$_COOKIE,$_FILES,$_SERVER等数据。
IT工作者
2022/04/16
2.2K0
【Laravel系列3.4】中间件在路由与控制器中的应用
中间件是什么?在传统框架的年代,很少会有中间件这个概念。我最早接触这个概念其实是在学习 MySQL 的时候,了解过 MyCat 这类的组件也被称为中间件。既然是中间,那么它就是一个夹在应用和调用中间的东西。我们还是以请求为例,一个请求要经过接收、处理、返回这三个过程,而中间件,就可以看作是夹在这三个操作中间的一些操作。比如说,我们的请求发过来,在没有到达路由或者控制器的时候,就可以通过中间件做一些预判,像参数合法不合法、登录状态的判断之类的。就像我们用 Laravel 做业务开发的时候,经常需要自己写的的中间件就是处理登录信息和解决跨域问题的中间件(Laravel8有自己的跨域组件了)。
硬核项目经理
2023/03/03
2.6K0
【Laravel系列3.4】中间件在路由与控制器中的应用
使用PHP脚本创建MySQL 数据表
通过 mysql> 命令窗口可以很简单的创建MySQL数据表。你可以使用 SQL 语句 CREATE TABLE 来创建数据表。
用户9239730
2021/11/29
3K0
C++中fstream_在使用中
C++中处理文件类似于处理标准输入和标准输出。类ifstream、ofstream和fstream分别从类 istream、ostream和iostream派生而来。作为派生的类,它们继承了插入和提取运算符(以及其他成员函数),还有与文件一起使用的成员和构造函数。可将文件<fstream> 包括进来以使用任何fstream。如果只执行输入,使用ifstream类;如果只执行输出,使用 ofstream类;如果要对流执行输入和输出,使用fstream类。可以将文件名称用作构造函数参数。
全栈程序员站长
2022/10/02
5.5K0
C++中fstream_在使用中
在命令提示窗口中删除数据表
MySQL中删除数据表是非常容易操作的,但是你在进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。
用户4988376
2021/08/17
6420
Sequence在Oracle中的使用
  Oracle中,当需要建立一个自增字段时,需要用到sequence。sequence也可以在mysql中使用,但是有些差别,日后再补充,先把oracle中sequence的基本使用总结一下,方便日后查阅。
庞小明
2018/08/01
5.3K0
点击加载更多

相似问题

使用dtOptions访问angularjs数据表中的json数据

11

角度数据表dtOptions仅在第二次单击时更新

112

不使用dtColumns和dtOptions的angularjs数据表

10

在控制器中角度使用$cacheFactory数据

20

在angular2中使用角度材料数据表

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文