|
发表于 2008-7-24 20:26:05
|
显示全部楼层
编译优化,不一定会减小二进制软件包体积,提高的主要是程序的启动速度、执行效率。
LFS、GENTOO版有很多关于编译优化的帖子,LFS hint、GENTOO wiki也有不少介绍。
主要是设置CFLAGS、CXXFLAGS、LDFLAGS。
其实如果你不做大规模运算(科学计算)或运行在高负载状态(繁忙的服务器),只是日常应用──编辑、开发、编译、上网、下载、播放、办公、学习,以当前主流硬件、主流软件为参考,优化与否影响不大,主要是心理作用。
有一点必须清楚,编译优化一般是以牺牲程序通用性为代价的。
如果你希望系统可移植到多台机器,或你准备做一个能运行在尽可能多机器上的livecd,就必须在满足通用性的前提下优化。
个人推荐,系统应在满足较高通用性的前提下编译优化,比如针对x86的机器,可以i686-pc-linux-gnu为基准系统(i486、i586 MMX MII K6-2 PII这些机器已经很少遇到),完成基准系统后,可针对当前机器优化配置编译一份专用内核,然后有选择的最大化编译优化一些对执行效率有较高要求的程序如wine、kvm、mplayer、3D相关(Mesa、xorg-server、xorg-driver)。
按此标准FF不在最优化列表,FF的优化,可通过插件解决——adblock-plus、noscript、flashblock,禁掉广告、flash后FF就像飞一样。
如果经常编译软件,可以用ccache加速编译。
如果希望加电后尽快进入系统,可精简内核,或模块化内核并延迟加载内核模块,并且精简系统服务,或延迟启动服务。──从加电到登录界面,文本界面控制在10s内不是问题,图形界面控制在20s不是问题,再短与嵌入式系统就有得一拼啦。
如果想要一个体积尽可能小的系统,最小化依赖安装所有你想要的,然后strip。 |
|