分析 C++ 编译过程

2023-12-02

我倾向于编写相当大的模板化标头 C++ 库,而我的用户经常抱怨编译时间。经过思考这个问题,我突然想到我不知道时间都去哪儿了。是否有一些简单的方法来分析常见编译器的 C++ 编译过程,例如GCC (g++), 英特尔 C++ 编译器 (icc), and XL C/C++ (xlC)?例如,是否可以了解在该时间内花费了多少时间?C++编译的每个阶段?


For GCC调试选项找到C++ 编译的每个阶段花费了多少时间?

-Q使编译器在编译时打印出每个函数名称,并在完成时打印有关每次传递的一些统计信息。

-ftime-报告使编译器在完成时打印有关每次传递所消耗时间的一些统计信息。

通行证的描述见GCCINT 9:编译器的传递和文件.

您可以使用以下命令发布单个源文件的 g++ 编译的输出-v -ftime-report到这里讨论一下。可能会有一些帮助海湾合作委员会邮件列表.


对于编译器除海湾合作委员会以外(或海湾合作委员会更古老的 than 3.3.6),请参阅其他答案中的其他选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分析 C++ 编译过程 的相关文章

随机推荐

  • 动态添加控件到 ASP.NET - 20 分钟后不保留视图状态

    我们有一个动态加载控件的 ASP net 表单 IIS 6 上的 NET 3 5 我们能够保留视图状态中的值只要回发发生在 20 分钟内 数据库也得到正确更新 一切都按预期进行 但是 如果用户填写表单的时间超过 20 分钟 则控件在回发期间
  • Beautiful Soup 对现有元素返回 None

    我正在努力降低产品的价格 这是我的代码 from bs4 import BeautifulSoup as soup import requests page url https www falabella com falabella cl
  • 在“我的设置”中添加名称

    如何在 My Settings 中添加新名称 到目前为止 我已经学会了如何读取和编辑其中的值 但是如何在运行时添加另一行 名称 就像是 My Settings AddName String foo1 My Settings Save My
  • 如何将音频字节转换为样本

    这是我的结构 wave data block header typedef struct wavehdr tag LPSTR lpData pointer to locked data buffer DWORD dwBufferLength
  • 在flutter中如何从firebase维护的缓存中获取当前用户登录的电子邮件和密码的登录类型

    我可以在身份验证中使用用户登录 但如何在 dart flutter 中获取当前用户帮助 我正在以这种方式尝试 FirebaseUser user FirebaseAuth instance currentUser print user ui
  • 为什么我用 Perl 编写的图像下载 CGI 脚本不起作用?

    usr bin perl use CGI standard use CGI Carp qw fatalsToBrowser my files location my ID my fileholder files location C Use
  • 如何设置剪贴板复制文件?

    在我的应用程序中 我允许用户选择与磁盘上的文件相对应的项目 当用户按 Ctrl C 时 我希望将文件发送到剪贴板 然后用户可以将文件粘贴到其他位置 我想以某种方式实现它 以便用户可以复制 但不能粘贴到我的应用程序中 然后 用户可以自由地将文
  • 将 Windows 应用商店应用程序中的画布保存为图像文件

    我正在寻找从 Windows 商店应用程序保存画布的方法 我发现 private void CreateSaveBitmap Canvas canvas string filename RenderTargetBitmap renderBi
  • 使用 CreateFileMapping 时出错 - C

    我正在使用教程这个 MSDN 链接实现一种将数据从一个进程传输到另一个进程的方法 尽管有人建议我先前的问题要使用 Pipe 方法 由于某些限制 我别无选择 只能使用 CreateFileMapping 方法 现在 我已经成功地在同一解决方案
  • 使用Python 3快速计算实大整数的以3为底的值

    我们有一个很大的数字 例如 10 1500000 1 并且想要将其转换为基数 3 下面是我们在普通 Python 中找到的最快方式运行代码 不使用 numpy 或 CAS 库 如何加速基数转换 到基数 3 的性能 我们想知道如何通过以下两种
  • 当 xml 标签名称包含大写字母时,BeautifulSoup 引发 AttributeError

    我正在尝试获取该标签的所有 XML 属性Name 出现此错误 AttributeError NoneType object has no attribute attrs 当我执行以下代码时 import BeautifulSoup as b
  • 如何在序言中打印所有数据库事实

    我在序言中有一个数据库 我想做的就是枚举它的元素并一一打印 如何才能做到这一点 fact is mike asthmatic fact has andy highPressure fact is mike smoker 我已经写了这个 它工
  • Android Instant 应用程序无法通过应用程序链接在我的 Beta 预发布测试中运行

    我的即时应用程序处于 Beta 预发行版 但我无法通过应用程序链接启动即时应用程序 相反 它会将我带到网络浏览器 有什么帮助吗 我自己也一直有同样的问题 我的解决方案是转到您的即时应用程序设置并关闭即时应用程序然后再次打开 您应该可以通过
  • c++:类的通用 getter

    我有点需要帮助 我想为我的类定义一个模板方法来访问其私有字段 这是我的代码 include
  • NSWindow 纹理背景与 NStextField

    我有一个超级奇怪的问题 我想要一个纹理窗口具有正常的渐变颜色 我在这个窗口中有一个 NSTextField 该文本字段注定是一个 URL 输入字段 因此它需要很大 问题是 当它太大 大约超过窗口宽度的 1 3 时 它只是切换纹理窗口以绘制渐
  • 无法使用.bss段内存

    我正在尝试在 bss 内存中存储一 个文件描述符 用于从一个文件读取并写入另一个文件的基本 Linux 程序 我一直无法让它发挥作用 该程序不会返回错误 但无法正常工作 将文件描述符存储在堆栈上时它可以正常工作 当我尝试在 gdb 中运行该
  • 如何使用boost序列化进行二进制输出?

    函数 boost serialization binary object void t size t size 和 boost serialization make binary object void t size t size 之间有什
  • 排序时间总是与第一次排序不同

    我写了情侣排序算法 我想比较他们的排序时间 至少是差不多 但在第一次循环之后 除了 StoogeSort 之外 所有排序时间都减少了 我认为可以在后台进行一些优化 但我应该考虑哪种措施 第一个还是其他 为什么会发生这种情况 public s
  • 最大大小未知时的 MatLab 内存分配

    我正在尝试加快我在 Matlab 中编写的脚本的速度 该脚本动态地将内存分配给矩阵 基本上是从文件中读取一行数据并将其写入矩阵 然后读取另一行并为更大的矩阵分配更多内存 存储下一行 我这样做而不是使用 Zeroes 或其他东西预分配内存的原
  • 分析 C++ 编译过程

    我倾向于编写相当大的模板化标头 C 库 而我的用户经常抱怨编译时间 经过思考这个问题 我突然想到我不知道时间都去哪儿了 是否有一些简单的方法来分析常见编译器的 C 编译过程 例如GCC g 英特尔 C 编译器 icc and XL C C