代码优化

代码优化

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

好久没写文章,近期忙房屋装修,难得闲下来写写blog,想起之前搞得非常狼狈的3个性能问题,都是非经常见的,记下来引以为戒:

1. 在写系统的i2c driver的时候,从參考板拿来一份轮询的driver sample,改完之后就直接提交代码到系统库,主要的測试都没有问题,一直到系统级别測试,发现和其它系统的交流的某个task A偶尔会timeout,一直找了非常久以为是网络有问题,最后无意观看使用Vxworks自带的spy monitor log里面发现当task A timeout的时候,i2c driver task占用CPU百分比非常高,而i2c driver task仅仅是简单的读取操作,并且读取次数也不多,细致查看轮询代码, driver里面在等待i2c返回的时候使用了sysUsDelay,看了UsDelay的实现就是i++…..难怪CPU占用非常高,改成中断模式之后问题解决。

2. 第二个问题就更有意思u时候遇到的,折腾了近1个月,在系统的end to end測试中,发现一旦Call的数目上去之后,有一个task的CPU使用率过高,有怀疑过硬件性能不行,也有怀疑过系统压力过大,最后还是看代码看到一个有意思的地方:三重循环。一看到三重循环就非常紧张,每次task运行就是368*3*2次循环体,谨遵循环优化办法:把推断条件能外移的外移,同一时候也把code里面的除法都改成了移位操作。CPU使用过高问题得到解决。

3. 系统压力測试的悲剧:怎么说呢,感觉就是自己太菜,第一次做系统级别的測试,被广告“在cdma的网络里面,Rev A号称3.1mbps的速率”忽悠了。所以系统级别的測试希望手机ftp的速率能够上到3.1mpbs,结果整个系统一直处于崩溃状态,找高通询问他们芯片的处理能力,找自己系统的代码处理能力瓶颈,最后发现overhead没考虑,所以才会出现系统负载只是来的情况,考虑全部的overhead,手机ftp应用最多去到2.7、2.8mbps,我去。。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/118933.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 【数据结构】十字链表

    【数据结构】十字链表介绍了有向图的链式存储结构:十字链。

  • 数仓(三):分层设计 ODS-DWD-DWS-ADS

    数仓(三):分层设计 ODS-DWD-DWS-ADS一、数仓建模的意义,为什么要对数据仓库分层?只有数据模型将数据有序的组织和存储起来之后,大数据才能得到高性能、低成本、高效率、高质量的使用。1、清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。数据关系条理化:源系统间存在复杂的数据关系,比如客户信息同时存在于核心系统、信贷系统、理财系统、资金系统,取数时该如何决策呢?数据仓库会对相同主题的数据进行统一建模,把复杂的数据关系梳理成条理清晰的数据模型,使用时就可避免上述问题了。2、数据血缘追…

  • 30套JSP网站源代码合集「建议收藏」

    30套JSP网站源代码合集「建议收藏」JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。我收集了一些JSP开发的网站源代码,从实践中学习,希望对大家有用。资料名称下载地址网上购物系统(jsp+mysql+tomcat) http://down.51cto.com/data/54179jsp网

  • pycharm激活码2021年(破解版激活)

    pycharm激活码2021年(破解版激活),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 老鼠吃奶酪(老鼠图片大全)

    老鼠吃奶酪(老鼠图片大全)本总结是是个人为防止遗忘而作,不得转载和商用。题目        一只老鼠位于迷宫左上角(0,0),迷宫中的数字9处有块大奶酪。0表示墙,1表示可通过路径。试给出一条可行的吃到奶酪的路径;若没有返回空。        假定迷宫是4连通的,即:老鼠只能上下左右走,不能斜着走。                  算法描述        这实际上就是练习深度优先搜索。

  • ETL 开发相关

    ETL 开发相关ETL开发相关

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号