代码膨胀?这在以前其实并不是我会记在心上的问题,最近由于发现某个工程生成的 DLL debug 版本居然达到 25M 之大,我就开始想怎么判断这是不是正常,如果不正常有办法解决吗?或者能否在以后多加注意避免这种问题呢?

在 google 大神的帮助之下,我找到一些不错的文章,其中某个博客的 Minimizing Code Bloat 系列文章我就觉得不错:

Minimizing Code Bloat for Faster Builds and Smaller Executables – Game Angst

http://gameangst.com/?p=46

Minimizing Code Bloat: Template Overspecialization – Game Angst

http://gameangst.com/?p=226

Minimizing Code Bloat: Excessive Inlining – Game Angst

http://gameangst.com/?p=212

Minimizing Code Bloat: Static Allocations – Game Angst

http://gameangst.com/?p=222

Minimizing Code Bloat: Incorrect Inlining – Game Angst

http://gameangst.com/?p=224

Minimizing Code Bloat: Redundant Template Instantiation – Game Angst

http://gameangst.com/?p=246

好吧,这也只是能让大家知道代码膨胀大概是怎么产生的,最多也只能在以后写 code 的时候注意点罢了,现在问题已经存在,怎么解决?

这位大侠最后提供了一个他/她自己写的开源(C#)小工具: SymbolSort:

Symbol Sort : A Utility for Measuring C++ Code Bloat – Game Angst

http://gameangst.com/?p=320

此工具可以支持分析 DLL/EXE/PDB/COMDAT 等文件并报告分析结果(可输出到指定文件),采用命令行方式实现,例子:

symbolsort -in C:\MyProject\myapp.exe -out report.txt

  

我想这用法已经是一目了然了吧?别忘了在使用之前执行:

regsvr32 "C:\Program Files\Common Files\Microsoft Shared\VC\msdia90.dll"

  

我分析这个工具生成的报告就很容易地发现了项目中写的很糟糕的模板类代码,所以这个工具值得推荐一下。

转自 http://www.cnblogs.com/yonken/archive/2011/08/28/Use_SymbolSort_to_Minimize_Code_Bloat.html

[介绍] SymbolSort, 帮你避免或减少代码膨胀 (Code Bloat)相关推荐

  1. 用python内置函数算复杂度吗_Python减少代码量的两个内置函数

    Python减少代码量的两个内置函数 前言 Python中内置了几个非常好用的函数. 当你掌握了这几个函数的用法后,有些场景下,不用自己去实现多余的冗余代码编写,只需要调用这些函数,便能很简短的帮你实 ...

  2. C++拾趣——使用多态减少泛型带来的代码膨胀

    泛型编程是C++语言中一种非常重要的技术,它可以让我们大大减少相似代码编写量.有时候,我和同事提及该技术时,称它是"一种让编译器帮我们写代码的技术".(转载请指明出于breakso ...

  3. 一名Android程序员如何减少代码中该死的-if-else-嵌套,怎么让代码更简洁?

    减少代码中该死的-if-else-嵌套,让代码更简洁! 写在前面 不知大家有没遇到过像"横放着的金字塔"一样的if else嵌套: if (true) {if (true) {if ...

  4. 减少代码中该死的 if else 嵌套

    来源:http://www.apkbus.com/blog-970703-78964.html 写在前面 不知大家有没遇到过像"横放着的金字塔"一样的if else嵌套: if ( ...

  5. 手动编译 lombok_Lombok,一种编译时Java注释预处理器,可最大程度地减少代码大小...

    手动编译 lombok 在本文中,我们将看到如何在常规Java代码中使用lombok来最大程度地减少代码长度和冗余. 什么是Lombok? Lombok,一个编译时注释预处理器,有助于在编译时注入一些 ...

  6. 想减少代码量,快设置一个有感知的 Aware Spring Bean

    本文分享自华为云社区<有感知的 Aware Spring Bean>,作者:陈皮的JavaLib. 有感知能力的 Spring Bean 正常情况下,Spring 中的 Bean 对 Sp ...

  7. WPF INotifyPropertyChanged 通过特性减少代码量

    在很多地方需要用上INotifyPropertyChanged的接口,MVVM模式,List等集合都会用到. 通常我们使用 protected void OnChange(PropertyChange ...

  8. Button控件的基本使用(初识封装、减少代码冗余性、代码优化)

    Button是程序用于和用户进行交互的一个重要控件,它的配置属性和TextView差不多,这里我们可以注意观察一下Button众多属性中的两种: 1.属性名android:textAllCaps    ...

  9. php asp.net 代码量少,.NET_asp.net 反射减少代码书写量, 复制代码 代码如下:public b - phpStudy...

    asp.net 反射减少代码书写量 public bool Add(Liuyan refmodel) { string sql = "insert into liuyan(name,phon ...

最新文章

  1. Windows Server 2012关闭Server Manager开机自启动
  2. jpadao层继承什么_ABP框架领域层
  3. SQL关闭自增长列标识:SET IDENTITY_INSERT
  4. JavaScript学习笔记——underscore操作对象的方法
  5. ABAP制作密码输入框
  6. Django的各种初识
  7. bitmap 转 drawable
  8. java对象的序列化和反序列化详细解释
  9. git clone github源码 下载速度很慢的解决方法
  10. linux 系统分区及格式化
  11. sqlserver 2016 安装
  12. 为什么计算机没有桌面显示不出来,我的电脑桌面不显示“我的电脑”了,请问怎么调出来?谢谢...
  13. pat basic 1082 射击比赛
  14. Typora+图床详解(小白都能学得会)
  15. joycon 连不上_switch手柄连接不上ns 连接不上蓝牙手柄硬件等问题解决方案
  16. 中国幼儿教育市场运营模式与未来发展方向分析报告2022版
  17. vue3+howler.js实现音频播放,兼容大多数音频格式
  18. 怎样才能成为一名优秀的软件开发者
  19. 微型计算机控制技术王艳芳,8279键盘显示实验--黄晓燕.doc
  20. Spark实现SVM模型

热门文章

  1. .NET开发中的几个JS奇技淫巧
  2. 如何查看eclipse的版本(Photon/Oxygen/Neon等)
  3. Python Scrapy简单爬虫-爬取澳洲药店,代购党的福音
  4. 6.Spring security中的rememberMe
  5. 基于微信小程序的婚纱影楼门户小程序
  6. C++ 结构体、成员函数、结构体指针的使用
  7. 2020华为春招--N阶方阵旋转(python)
  8. 【高手进阶】玩转示波器的触发设置
  9. 女生学python难吗_女生学数据分析好吗?数据分析适不适合女生学?
  10. 飞机机电管理计算机故障措施,一种基于故障树的飞机机电系统健康管理装置及管理方法与流程...