Linux程序设计的一些优化措施.doc

上传人:白大夫 文档编号:3255397 上传时间:2019-08-06 格式:DOC 页数:2 大小:14.50KB
返回 下载 相关 举报
Linux程序设计的一些优化措施.doc_第1页
第1页 / 共2页
亲,该文档总共2页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Linux程序设计的一些优化措施.doc》由会员分享,可在线阅读,更多相关《Linux程序设计的一些优化措施.doc(2页珍藏版)》请在三一文库上搜索。

1、Linux程序设计的一些优化措施Linux 程序设计的一些优化措施这些知识是在平常的阅读中,零散的获得的,自己总结了一下,分享在这里全局变量VS函数参数全局变量在Linux下的驱动编程里边,用的是非常多,例如中断服务函数ISR,基本上都可以用全局变量来作为数据的更新,及事件的触发。给函数传递参数的效率一般来说,要低于直接使用全局变量,尤其是参数的数目太多的时候。参数传递,是需要先将参数push到stack中,等程序运行完毕,再从stack中pull出来,过程上要比global variable复杂。但是,全局变量过多的话,这里边就设计到管理的问题了,到后面就很难去控制这些变量的修改,这对于函数

2、的模块化有不利的影响。i=i+1;i+;i-;这三个语句都通常引用在for()或者是while()里边,从执行效率上来说 321这和最终生成的汇编语言有关,一般来说,影响不会太夸张。switch-case语句switch-case语句,也是用的非常多的语句。这里首先的优化原则就是:将发生概率最高的条件,放在最先判断的位置。这样就能够有效的降低比较的次数,达到更优的效果。或者,有一种更好的方法来替代switch-case语句的方法,就是利用查表比如switch(msg_type)case DATA: handle_data_fun(); break;case RTS: handle_rts_fu

3、n(); break; .这里就可以用函数指针和查表的方式,获得handle_fun的方法来替代。处理函数都在初始化的过程中,放到*handle_funMAX相应的位置上int (*handle_funMAX)(struct msg_t *msg);int msg_type = msg-type;handle_funmsg_type(msg);/即可这种方法,在Linux的网络协议里边,用的非常多,一般对应的查表方式为hash表结构。sturct 和 union的使用sturcut 使用,一定要考虑到字节对其的问题,struct中,不同的安排顺序,sizeof是不同的所以要调整好位置,尽量保证

4、struct的size最小。union的使用,比如对不同包的数据结构上,是不一样的,所以尽量使用union来区分不同的包结构这样对程序的可读性比较好。volatile的使用这在驱动编程方面是非常有用的一个标志。目的是不让编译器compiler把当前的变量优化掉。尤其是涉及到硬件寄存器的值的时候。乘除运算的简化乘除运算,对arm来说太致命,arm的乘除都生成一堆的汇编指令才能完成。所以一般可以通过位操作,比如移位,取低位来进行适当的化简。比如 a*8 = a3;Inline 函数在实现比较简单功能的函数,以及那些调用非常平凡的函数,都可以在函数前加入inline的标识。这样在产生汇编的时候,能够更有效。也可以替代较复杂的define语句。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1