性能优化汇总

1-利用 static 关键字,可以把字段变成静态字段,也可以把函数变为静态函数,调用时就无需初始化类对象。

2-提前return异常

3-数据量比较大,批量操作数据入库

4-耗时操作考虑异步处理

5-恰当使用缓存,redis,map,

6-优化sql
(加索引 避免返回不必要的数据 优化sql结构,分库分表,读写分离)

7-写完代码,记得自测

检验入参

批量操作

记得接口兼容

尽量不在循环里远程调用、或者数据库操作,优先考虑批量进行

也不要一次性查太多数据哈,要分批500一次酱紫

手动写完代码业务的SQL,先拿去数据库跑一下,同时也explain看下执行计划

调用第三方接口,需要考虑异常处理,安全性,超时重试这几个点。

接口需要考虑幂等性



方法职责单一
注释终归是要用来体现代码之外的东西..不要写废话
函数参数要尽可能少


记得自测
入参记得校验
接口加参数,记得兼容
IO流用完记得关闭
try-with-resource代替try-catch
不要在循环里,远程调用,连接数据库,但是一次也别太多,可以分批,比如500一次。
获取对象的属性,先非空判断
手动写完代码业务的SQL,先拿去数据库跑一下,同时也explain看下执行计划
调用第三方接口,需要考虑异常处理,安全性,超时重试这几个点。
接口需要考虑幂等性,
主从延迟问题考虑


尽量指定类、方法的final修饰符

出现字符串连接时应该使用StringBuilder/StringBuffer代替

尽可能使用局部变量

不要在循环中使用try...catch...,应该把其放在最外层



81-重构代码技巧
去除重复的代码
一个方法不要超过100行
对于大量if不可避免,推荐卫语句,可以治疗这种恐怖的嵌套条件语句。它的核心思想是,将不满足某些条件的情况放在方法前 面,并及时跳出方法,以免对后面的判断造成影响
干掉魔法值
不要用map返回给前端,用实体类
消除过长参数列表


有的时候没必要写注释,可以用log.info来代替,岂不是更好。

归属一类的多个常量定义枚举值


善用工具类 无论自己框架的还是第三方开源框架的,不要自己发明轮子,如果没有,甚至自己写一个工具方法,这样可以让代码更关注 业务。

涉及多重循环时,好好考虑一下是不是一定要这样做才可以。
能否每个业务一个独立的子方法? 注释不能省,而且对于关键代码,有注释可读性大大提升。

魔术字要重构为常量。

避免重复代码 看到重复代码,务必想办法把它抽离出来重用。

 写日志时,切记不要写那种没有参考价值的日志。
 你要考虑一下,如果以后业务出错或者出现意外需要回看日志时,这些信息够不够, 能不能让你足够的重现当时的场景.
 
 
 
 
 频繁调用 Collection.contains 方法请使用 Set

  在 java 集合类库中,List 的 contains 方法普遍时间复杂度是 O(n) ,
如果在代码中需要频繁调用 contains 方法查找数据,
可以先将 list 转换成 HashSet 实现,将 O(n) 的时间复杂度降为 O(1) 。
posted @ 2021-12-11 22:28  姚狗蛋  阅读(16)  评论(0编辑  收藏  举报