----------各位高手,我想到一个难题.-----------

femalelover 2006-04-26 09:55:07
C++库,Windows的库一个个又笨又重.

理由一, 引入一个#include<string> 编译出来的程序比直接使用char*时要大得多;

理由二, 硬件再快, 内存再大, 速度快与体积小永远是程序员的追求.比如游戏程序, 做游戏的菜鸟应该感觉得到自己的垃圾小游戏跑起来耗资源之多简直无敌.

....省略N个.

难题就是: 这些系统库应该是能改造的,保留特定程序中用得到的,剔除那些冗余的. 可是,怎么入手呢?
...全文
169 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
plamlover 2006-04-27
  • 打赏
  • 举报
回复
你过于当心了....不知道你有没有看过那些头文件(没有用到的东西都不会编译的,之所以复杂,因为它很完善)...你的想法是多余的
如果你一定要自己去实现那些函数,只会让你的程序漏洞百出(如果你不高手的话)
adintr 2006-04-27
  • 打赏
  • 举报
回复
库中没用到的函数不会连接到你的 exe 中,不用担心
femalelover 2006-04-27
  • 打赏
  • 举报
回复
找不到建议没关系,楼上总算提到了本书.
DLL与EXE都是二进制,但由于DLL做出来后必须为以后的被调用做准备. 所以与EXE在生成过程上是有区别的.
code_tin 2006-04-27
  • 打赏
  • 举报
回复
至于楼上提到的解决方案
如果要重构库,那就比较麻烦了
不过我们还是可以从减少include的使用入手
exceptional c++有这方面的论述
有些时候我们只是需要一些结构的定义
这个时候就不用include整个头文件了
把定义申明一下就可以了.
code_tin 2006-04-27
  • 打赏
  • 举报
回复
DLL的编译原理和EXE一样
你没有用到的东西不会被加到里面去
楼主说的加上string就会大许多的情况只有MINGW下面才会有
使用了string整个exe会大400k左右
这个是由于GCC连接器的缺陷
MINGW官方FAQ里面也提到了这点,不过没说解决方案
你用VC2003以后的就不会有这个问题
文件最多大10k左右.
femalelover 2006-04-27
  • 打赏
  • 举报
回复
EXE中没有你没用到函数?
----------------------
EXE中没什么影响,但一般的.dll和.lib中就有影响了. 尤其是.lib

改造库据我所知并不少见, 尤其以游戏程序为多,专业的的DX游戏开发,里面的DX头文件等常常都在MS发布的基础上有所改动.
逸学堂 2006-04-27
  • 打赏
  • 举报
回复
C++类库,windows类库,为了保持通用和兼容型,有时候必须做效率的牺牲。但是即使这样对于大多用户来说,他依然是高效率的。至少99%程序员写不去既有兼容性,又有效率,同时体积还小的类库来。

分析一个软件效率高低,不要用想当然。要用不同的分析软件不断的测试,才可能找到真正的瓶颈。真正分析出效率瓶颈后,再考虑解决问题方案。

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧