首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

代码优化

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

39840
您找到你想要的搜索结果了吗?
是的
没有找到

Android 性能优化使用 Lint 优化代码、去除多余资源

今天,以“成为优秀的程序员”为目标的拭心将和大家一起精益求精,学习使用 Lint 优化我们的代码。...看着浑身不舒服,想了解如何从命令行使用 Lint 的同学可以点击这里前往官方学习。 我们还是直接进入 Lint 的 GUI 操作吧。...上图可以看到,Lint 真是神器,可以帮我们发现自己忽略或者没有意识到的问题,尤其是性能方面,如果你觉得自己代码优化又不知道从何做起,不妨让 Lint 给你指指路。...下面的代码演示了如何忽略 Lint 对使用新 API 的警告: @SuppressLint("NewApi") @Override public void onCreate(Bundle savedInstanceState...自动删除查找出来的无用资源文件 代码迭代版本一多,很容易会遗留一些无用的代码、资源文件,我们可以使用 Lint 进行清除。

3.4K60

祖传代码如何优化性能?

话分两头,另一边集团也在逐渐使用容器替代虚拟机和物理机,在高峰期会用扩容的方式来抗住流量高峰,快速扩容就要求服务能在短时间内大量启动,无疑对注册中心是一个大的考验。...其次对项目进行一次压测,不知道现在的性能,后面的优化也无法证明其效果了。 以注册接口为例,当时注册的性能大概是40qps,记住这个值,看我们是如何一步一步达到1000qps的。...至于MySQL如何实现一个悲观锁,我相信你会的,所以我就不展开。...锁优化优化锁之前,我们先搞清楚为什么要加锁,在我反复测试,读代码,看文档之后,发现事情其实很简单,这个锁是为了防止App、Cluster、Endpoint重复写入。...这无法考证,但现状就是这样,如何破解呢? 首先是看这些表能否加唯一索引,有则尽量加上 其次数据库悲观锁能否换成Redis的乐观锁?

31031

使用 C 优化你的 Python 代码

Cython 是 Python 编程语言的编译器,旨在优化性能并形成一个扩展的 Cython 编程语言。...Cython 一般用于创建 C 模块来加速 Python 代码的执行。这在使用解释型语言编写的效率不高的复杂应用中非常重要。...你需要修改你的脚本,使它可以作为一个库来使用。 写一个库 库不使用系统参数,而是接受其他代码的参数。...这篇文章描述了如何做,然而,Cython 还有功能可以帮助你在转换之前优化你的代码,分析你的代码来找到 Cython 什么时候与 C 进行交互,以及更多。...如果你正在用 Python,但是你希望用 C 代码改进你的代码,或者进一步理解库是如何提供比脚本更好的扩展性的,或者你只是好奇 Python 和 C 是如何协作的,那么就开始使用 Cython 吧。

79410

使用工厂模式优化 ifelifelse 代码

评价 显然如果是紧急需求,或者是没有经过思考的话,上面的代码的确是一挥而就,完成任务。作为一名不断精进的工程师,肯定是不会满足于上述代码,那么上述代码存在什么问题需要去改进呢?...unicode') 现在 serialize 方法内部所有逻辑都被抽象成相应的接口, if/elif/else 逻辑被放在了 _get_serializer 的内部方法里,也就是工厂模式里的creator(选择要使用哪个序列化方法...serializer.add_property('artist', self.artist) Song类实现了Serializable的具体接口serialize,在这个接口里Song类使用...到目前为止,这一版代码的client(ObjectSerializer)和product(serializer)有了。作为creator的factory该如何实现。...factory方法的实现 最简单的factory方法可以依旧使用 if/else/elif 的逻辑处理数据。

53520

使用工厂模式优化 ifelifelse 代码

评价 显然如果是紧急需求,或者是没有经过思考的话,上面的代码的确是一挥而就,完成任务。作为一名不断精进的工程师,肯定是不会满足于上述代码,那么上述代码存在什么问题需要去改进呢?...unicode') 现在 serialize 方法内部所有逻辑都被抽象成相应的接口, if/elif/else 逻辑被放在了 _get_serializer 的内部方法里,也就是工厂模式里的creator(选择要使用哪个序列化方法...serializer.add_property('artist', self.artist) Song类实现了Serializable的具体接口serialize,在这个接口里Song类使用...到目前为止,这一版代码的client(ObjectSerializer)和product(serializer)有了。作为creator的factory该如何实现。...factory方法的实现 最简单的factory方法可以依旧使用 if/else/elif 的逻辑处理数据。

1.3K10

代码优化大盘点:35 个 Java 代码优化魔鬼细节

前言 代码 优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?...代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,...代码优化的目标是: 减小代码的体积 提高代码运行的效率 代码优化细节 1、尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。...i.toString、String.valueOf(i)、i+””三种方式,三种方式的效率如何,看一个测试: ?...而改为上面的写法之后,就保证了无论如何XXX和YYY都会被close掉。如果JDK7以上,强烈建议使用try-with-resources。

39330

代码优化的方法

上一篇博客说到最近做了一个大一些的需求,等需求完成后代码非常的凌乱,自己重构(整理了一波),在整理过程中,有一点对于如何优化代码的想法,特此记录一下。...这里说的优化,是指完成了杂乱的代码后,重现让它更合理,更干净一些,并不是在编程开始前的设计优化,因此不着重于设计模式等的使用。...在代码的review过程中,推荐使用一些gitlab,gerrit等工具来查看自己的代码,因为git工具会将你的代码改动更加直观的展示出来,而在编译器中,我们看到的更多是整体的代码,容易分散注意力。...程序本身的提高 思考需求本身,优化设计 这一步其实很重要,因为好的设计可从根本上提高代码的质量,但是因为过于有“个性”,每个项目都有自己适合的设计,无法具体分析。...提取共性 这一步其实非常的简单,把代码使用到的实体类,各种类的属性看一下,有没有一些重合度很高的?

83420

循环代码优化技巧。

00.写在之前 「代码优化」应该是我们时刻记在心里的一件事情,从一开始就建立一种正确的编程观念,养成一种好的编程习惯,避免一些低效弱智的做法。...关于如何在循环上考虑优化代码,就是下面我要介绍的内容。...01.循环代码优化 技巧 1:减少循环内部不必要的计算 什么算是不必要的计算,就是指那些无论放在循环里面还是放在循环外面都不会改变程序运行结果,对于这样的能放到循环外面的一定要放到循环外面。...技巧 3:尽量使用局部变量 尽量使用局部变量来代替全局变量,因为局部变量查询比较快,有助于效率的提升。...技巧 4:使用 join() 连接字符串 这个技巧呢不仅适用在循环里,可以说在程序的任意地方都适用。

82510

java反射,代码优化

java的反射机制属实强大,能解决好些问题 在接手别人写的代码的时候,有一个bean类的get方法特别low,我都看不下去 重复代码写五遍,我都觉得太不合理。之后将其中代码抽取出来修改了下。...temp.add(mapC); temp.add(mapD); temp.add(mapE); return temp; } 将其中的相同代码抽出来有个问题...之前使用的反射也挺多,有时候根据对应的全类名来获取,这个可用性很大。...new对象的话再getclass最多就是用在别人封装好的方法 这次使用的时候蒙了,从数据库查出来怎么在本类使用反射,this.getClass获取到的是空啊。...一开始是根据属性取值,最后想了下,还没有调用set方法怎么能有值 最后使用 Method method = QuestionsDto.class.getDeclaredMethod(f, null);

38330

Java 代码性能优化

代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?...代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,...代码优化的目标是 减小代码的体积 提高代码运行的效率 代码优化细节 1、尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。...20、使用同步代码块替代同步方法 这点在多线程模块中的synchronized锁方法块一文中已经讲得很清楚了,除非能确定一整个方法都是需要进行同步的,否则尽量使用同步代码块,避免对那些不需要进行同步的代码也进行了同步...而改为上面的写法之后,就保证了无论如何XXX和YYY都会被close掉。

40420

Python 代码优化实践

从目前的代码中能发现至少有 2 个地方可以优化: 函数之间需要传递的参数太多了,可以看看是否全部必要,考虑下如何精简; 部分业务逻辑太细化,有重复的代码实现,导致实现看起来比较臃肿。...对于第 1 点,优化的思路是:对于非所有函数都必须调用的参数,尽可能的固化到实际使用的函数中,避免各函数仅仅做了传递员的工作。...对于第 2 点,优化的思路是:合并同类项,对于重复代码的部分,尽可能提取到共用逻辑中实现。...下面是优化后的代码: #执行本地文件替换的具体操作 def ReplaceLocalFiles(filepath, bydir): if (":" not in filepath) or (not...优化后的结果看起来有没有清爽很多? 以上,如果觉得有用,请帮忙转发分享,不甚感激。

42540
领券