Skip to content

Latest commit

 

History

History
63 lines (29 loc) · 1.71 KB

优化重构.md

File metadata and controls

63 lines (29 loc) · 1.71 KB

优化重构

质量属性

性能(Performance):效率指标,是指系统的响应能力,处理任务所需时间或单位时间内的处理量。

可靠性:

  • 容错(Fault-tolerant):出现错误后仍能保证系统系统继续运行,且自行修正错误。
  • 健壮性(Robustness):是指在处理或环境中,系统能够承受压力或变更的能力,错误不对系统产生影响,按既定程序忽略错误。

可用性(Availability):是系统能够正常运行的时间比例

安全性(Security):是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。

可修改性(Modification):是指能够快速地以较高的性能价格比对系统进行变更的能力。

组件升级

  • JDK升级
  • Spring升级
  • Tomcat升级

性能

  • IO密集型:Reactor异步化

  • CPU密集型:Akka异步化

  • Java Parallel Stream:大数据量场景下切多核,可考虑使用,其他场景优先使用非parallel

  • 无锁化

  • 动态线程池

  • 负责业务,设计模式化

  • 响应时间优化

    • 数据库读取、配置资源
  • 系统吞吐量:QPS、TPS

  • GC调优

  • String.intern优化具有重合性的:国家、省份、城市、火车站等

    • 缺点:

      • 会增加常量池的大小(JDK7以后,常量池被已入堆中,使用Hash存储-StringTable,可利用-XX:StringTableSize=66666设置大小)

      • intern 的使用要注意场景,StringTable存储的数据量越大,遍历的复杂度就会增加,性能会下降

      • PS:JDK7,由于String.intern() 发生了改变,因此String Pool中也可以存放放于【堆内的字符串对象的引用】