当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: (原創) 程序减肥三步走 程序减肥三步走 对于设计嵌入式Linux系统的研发人员来说,有一个问题是必须要考虑到的,那就是存储器的空间。
 

 

    摘要:java相关基础知识java相关基础知识1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的......
    摘要:vmware for linux 的使用说明真是很少,好不容易找到的只有这篇好像是完整版,google,baidu一起搜,同一地址,但只有baidu有快照。。。。。。vmware for linux 使用经典问答 发表时间: 2004-07-10 14:47 q:我安装了vmware的rpm包,有vmware命令了,但为什么不能运行vmare?引用:a:请先运行vmware-config.pl,做......


(原創) 程序减肥三步走
(原創) 程序减肥三步走

程序减肥三步走

对于设计嵌入式linux系统的研发人员来说,有一个问题是必须要考虑到的,那就是存储器的空间. 【程序编程相关:建立檢查使用者Quota的網頁

【推荐阅读:Apache Rewrite

我们知道嵌入式linux系统所用的存储器不是软磁盘.硬盘.zip盘.cd-rom.dvd这些众所周知的大容量常规存储器,它使用的是例如rom,compactflash,m-systems的diskonchip,sony的memorystick,ibm 的microdrive等体积极小,与主板上的bios大小相近,存储容量很小的存储器.所以怎样尽可能的节省空间就显的很重要. 【扩展信息:Linux 磁碟配額( Quota )

嵌入式系统的存储器中放置的无非是内核,文件系统,软件,以及自己开发的程序.本文就从程序入手,以一个非常简单的c程序来作为例子,通过三步来让它减肥.

hello.c:

#include

int main ()

{

printf ("hello,world");

return 0;

}

我们先用正常的编译方法来编译,看看生成的程序的大小是多少

#gcc –o hello hello.c

#ls –l hello

-rwxr-xr-x 1 root root 11542 nov 13 20:07 hello

从结果可以看到正常编译后的程序大小是11542byte

现在开始我们的三步减肥,看看到底效果如何.

步骤一:用gcc 的代码优化参数

代码优化指的是编译器通过分析源代码,找出其中尚未达到最优的部分,然后对其重新进行组合,目的是改善程序的执行性能.gcc提供的代码优化功能非常强大,它通过编译选项-on来控制优化代码的生成,其中n是一个代表优化级别的整数.对于不同版本的gcc来讲,n的取值范围及其对应的优化效果可能并不完全相同,比较典型的范围是从0变化到2或3.

编译时使用选项-o可以告诉gcc同时减小代码的长度与执行时间,其效果等价于-o1.在这一级别上能够进行的优化类型虽然取决于目标处理器,但一般都会包括线程跳转(thread jump)与延迟退栈(deferred stack pops)两种优化.选项-o2告诉gcc除了完成所有-o1级别的优化之外,同时还要进行一些额外的调整工作,如处理器指令调度等.选项-o3则除了完成所有-o2级别的优化之外,还包括循环展开与其它一些与处理器特性相关的优化工作.通常来说,数字越大优化的等级越高,同时也就意味着程序的运行速度越快.许多linux程序员都喜欢使用-o2选项,因为它在优化长度.编译时间与代码大小之间,取得了一个比较理想的平衡点.
...   下一页
 ·gnu make 指南    »显示摘要«
    摘要:翻译: 哈少 译者按: 本文是一篇介绍 gnu make 的文章,读完后读者应该基本掌握了 make 的用法。而 make 是所有想在 unix (当然也包括 linux )系统上编程的用户必须掌握的工具。如果你写的程序中没有用到 make ,则说明你写的程序只是个人的练习程序,不具有任何实用的价值。也许这么说有点 儿偏激,但 make 实在是应该用在任何稍具规模的程序中的。希望本文可以......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE