如何将一个软件包通过优化编译使编译的结果更小,比如firefox
时间:2008-07-24
来源:互联网
作者: yfwill 发布时间: 2008-07-24
作者: d00m3d 发布时间: 2008-07-24
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。
作者: 聚焦深空 发布时间: 2008-07-25
作者: yfwill 发布时间: 2008-07-25
作者: remote fish 发布时间: 2008-07-26
作者: d00m3d 发布时间: 2008-07-26
作者: yfwill 发布时间: 2008-07-29
Firefox搞小,我不知道你是什么目的,如果是应用于嵌入式的话,我测试过在300M的 MIPS CPU和在400M的ARM9上面的性能。基本上,如果你的系统只跑 firefox一样东西是勉强可以接受的,否则几乎没有实用价值,如果用户点开一个局域网网页要8秒,你是否还认为这是实用的?
苹果iPhone使用的Safari,用的就是KHTML,
Moto的Linux手机里面带的也是Konqueror。
带Firefox的智能终端当然有,不过他们的CPU和内存要强劲得多才行。
作者: poet 发布时间: 2008-08-02
作者: tlze 发布时间: 2008-08-02
其实大一些没什么,只要稳定就好,不要老是内存泄漏就阿弥陀佛了。
作者: shpchp 发布时间: 2009-07-31
作者: yfwill 发布时间: 2009-07-31
09-07-30, 21:01
两个回帖之间经过了:362天23小时59分钟40秒
作者: simdiak 发布时间: 2009-07-31
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28