那里有“函数大小分析器”吗?

2024-01-22

经过三年的 C++ 项目工作,可执行文件已增长到 4 MB。我想看看这些空间都去哪儿了。有没有一种工具可以报告最大的太空霸主是什么?如果能按类(类中的所有函数)、模板(所有实例化)和库(有多少属于 C 标准库和 STL?exe 中的每个库有多少?)来查看大小,那就太好了

编辑:注意,我在 Windows 上使用 Visual C++。


In Linux, 您可以使用nm http://linux.die.net/man/1/nm显示可执行文件中的所有符号并按大小逆序对它们进行排序:

$ nm -CSr --size-sort <exe>

Options:

  • -C解构 C++ 名称。
  • -S显示符号的大小。
  • --size-sort按大小对符号进行排序。
  • -r反转排序。

如果您想获取每个命名空间或每个类的结果,您可以grep' 的输出namespace::', 'namespace::class_name::', etc..

如果您只想查看已定义的符号in可执行文件(不是在其他地方定义的,例如在库中)然后添加--defined-only。不过,按大小排序应该考虑到这一点,因为未定义的符号不会有大小。

对于 Windows,你应该仍然可以使用nm在你的二进制文件上,因为nm支持COFF http://en.wikipedia.org/wiki/COFF二进制文件。您可以安装nm通过 cygwin,或者您可以将 Windows 可执行文件复制到 Linux 机器并运行nm在那儿。

你也可以尝试dumpbin http://msdn.microsoft.com/en-us/library/c1h23y6c(VS.71).aspx,它转储有关 Windows 上的二进制文件的信息。您可以使用以下命令获取有关符号的信息/SYMBOLS开关,但看起来它并没有直接提供有关其大小的信息。

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

那里有“函数大小分析器”吗? 的相关文章

  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 需要哪个版本的 Visual C++ 运行时库?

    microsoft 的最新 vcredist 2010 版 是否包含以前的版本 2008 SP1 和 2005 SP1 还是我需要安装全部 3 个版本 谢谢 你需要所有这些
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • 警告:在此函数中使用未初始化的“”[-Wuninitialized]

    以下程序编译时没有警告 O0 include
  • GitHub Action:如何从表达式求值中获取值并将其分配给环境变量

    环境表达式通常直接赋值 如下例所示 name set up env var env TAG v1 2 3 run echo TAG 但是如何从 shell 脚本评估中获取值呢 例如 在我的终端中 我可以通过以下方式获取当前标签git des
  • CMake rpm 在 /etc/init.d 中安装文件

    我想安装一个文件 etc init d 目录 我已经写了代码 INSTALL FILES CMAKE SOURCE DIR app script appd DESTINATION etc init d appd 但是当我使用 cmake 运
  • Facebook SDK 4.5 iOS 9

    我遇到了新 FBSDK 的问题 每当我尝试调用登录方法 logInWithReadPermissions 时 我都会收到以下错误消息 错误 canOpenUrl url fbauth2 失败错误 null 我的配置 plist 文件遵循 i
  • 使用GPU加速BigInteger计算

    我几乎完成了处理一些非常大的整数 大约 2 的 100 000 000 次方 的算法 由于该算法不是内存密集型的 因此需要在内存充足的 16 核服务器上编写几个小时的高度并行代码 我使用 NET 4 中的 BigInteger 类 算法的细
  • ASP.Net Core 中的动态路由

    我需要提供一个路由机制 其中路由是在运行时从用户帐户创建生成的 例如http mysite username home 我认为这可以通过路由来完成 但我不确定从哪里开始使用 ASP Net Core 我在网上看到了一些 MVC 5 的示例
  • zxing 集成到 monodroid 应用程序中

    我正在尝试将 ZXing 的条形码扫描仪集成到 MonoDroid 应用程序中 我看到普通的 Android java 应用程序有IntentIntegration java 和 IntentResult java http code go
  • 如何“解锁詹金斯”?

    我正在Windows上安装Jenkins 2 安装后 打开一个页面 URL是 http localhost 8080 login from 2F http localhost 8080 login from 2F content of th
  • Selenium 在 Windows 中运行无头 Firefox 浏览器

    是否可以将 Selenium 配置为使用 Firefox 驱动程序并在 Windows 中无头运行浏览器 我知道其他驱动程序在 Windows 或 Linux 下也能正常工作 但在上面提到的特定情况下则不然 任何可供阅读的参考信息 实现它的
  • Scrapy 通过表单身份验证绕过警报消息

    Scrapy是否可以抓取警报消息 链接例如 http 域名 admin http domainhere admin 一旦加载到实际的浏览器中 就会出现一条带有表单的警报消息 以填写用户名和密码 或者有没有办法检查警报消息中的表单以了解要填写
  • 如何从出租车中获取界、门、纲、目、科、属和种的分类学特定 ID?

    我有一个出租车列表 如下所示 1204725 2162 1300163 420247 我希望从上面的出租车中按顺序获取带有分类 ID 的文件 kingdom id phylum id class id order id family id
  • 如何获取 Django 中保存模型实例的数据库?

    我有一个使用多个数据库的 Django 应用程序 给定一个模型实例 如何获取存储它的数据库 如果有 我需要这个来保存另一个对象the same数据库作为第一个 def add ducks to hunt hunter db the hunt
  • 不使用openjdk安装maven2

    ubuntu默认自带openjdk 我从sun安装了jdk 并删除了openjdk 但是使用openjdk我必须删除maven2 不安装openjdk如何重新安装 java version java version 1 7 0 03 Jav
  • 无缝 Facebook 登录

    我正在开发一个应用程序 允许与 Facebook 共享更新 该应用程序正在运行 f9 但我真正想要的是从我的 UI 登录页面提供登录凭据 请指导从Facebook的角度是否可以 适用于 Android 的官方 Facebook SDK 支持
  • 根据列中的重复值对 Excel 中的值进行分组

    假设 我有数据 Column1 Column2 1 1000 1 2000 1 3000 2 2000 2 1000 3 5000 3 4000 我想显示它像 Column1 Column2 Column3 1 1000 3000 2 20
  • 如何使用值数组读取 appsettings.json

    我有以下 appSettings json 文件 SundrySettings CookieName Cookie AccessGroup Software Development Terminals Raucherplatz tablet
  • 计数器:对具有相同计数的元素进行排序

    该文档指定对于collections Counter most common https docs python org 3 6 library collections html collections Counter 具有相同计数的元素是
  • MessageBox.Show会导致服务器端超时问题吗?

    我有一个预定的 SSIS 包 其中包含script task in SQL Server Agent在我们的服务器上 我确实设置了timeout对于SQL连接 以及里面的一些代码Try块 它会抛出错误 并且有MessageBox Show在
  • 指针数据未存储在本地数据库中解析ios

    我有一个包含许多 includeKeys 的查询 它们是指向另一个类的指针 从解析云接收数据后 所有记录都使用本地存储pinAll方法 当我取回存储的结果时 我可以获取记录 但不能获取指针 请参阅下面的示例代码 query includeK
  • 那里有“函数大小分析器”吗?

    经过三年的 C 项目工作 可执行文件已增长到 4 MB 我想看看这些空间都去哪儿了 有没有一种工具可以报告最大的太空霸主是什么 如果能按类 类中的所有函数 模板 所有实例化 和库 有多少属于 C 标准库和 STL exe 中的每个库有多少