JAVA性能优化

公司项目做了一次性能优化,总结一下优化方向。

  1. 并发 请求多个接口,并发请求
  2. sql 排查一下耗时的sql,优化sql,增加索引等
  3. redis 循环get改成mget,或者缓存的时候把一组数据缓存到一起,一次ing获取
  4. 增加缓存 准确性或者实时性要求不高的数据可以从换从中获取,减少接口和数据库访问
  5. 深拷贝改成浅拷贝或者直接使用原对象,因为现在项目不会修改入参,所以改成直接用原对象
  6. 实例复用 有一些实例创建起来比较耗时,能复用尽量复有,特别是在循环里。例如正则Pattern ,时间SimpleDateFormat,xmlJAXBContext等
  7. 异步处理和主流程无关的内容,例如查询酒店是主流程,把酒店信息缓存到redis是无关主流程的,可以放到其他线程执行。
  8. 两个大的list,存着不同的属性,现在要合并[{id,name},....]和[{id,phone},....]合并成[{id,name,phone},....] (复杂度n*n),最好先把一个list转换成map(复杂度n)
  9. 大量数据要处理,不要放到jvm(存到list、map中)内存中,之前项目中有存到map中2G的数据,然后处理好几天(还要接口获取其他信息,所以时间较长),这几天服务器都比较慢,而且服务器若是重启还得重新读取这些数据,最好放到数据库中,或者消息队列中。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值