Java性能优化第一章总结

木桶原理是指在计算机中,往往最后的性能取决于最差的那一块短板,而不是最好的那一块长版,往往是某一个部件的问题,导致了系统整体的性能问题,这点在Java性能优化中也是一个道理

amdahl公式是指在一定负载情况下,增加cpu个数对整体性能的优化,公式为s=1/(1-a+a/n),其中a为可并行计算的负载,而n为cpu个数,其实这个n也不仅仅指代cpu个数,在分布式系统中,往往n代表计算机个数,可以发现,当可并行计算a的负载越大,n的增加对整体优化的程度越好,当a=0时增加CPU(计算机)完全无效,所以优化的关键在于尽可能让可并行计算的部分增加

作者把调优分为几个层次,但是我认为,其实只是不同方向,优先级不同而已

设计调优属于优先级最高,也最容易看见成效,好的设计可以规避相当多的风险和隐患,比如作者举的例子,轮询和观察者模式之间的区别,代码量没有改变多少,但是性能有了较大幅度的提升

代码调优属于最容易见效的部分,也是最细枝末节的部分,我个人认为,所谓的代码调优,实际上只是设计调优的一部分,即使是hello word这种代码同样需要设计,并不是说hello word就不需要设计了,只不过这种设计对于一般程序员来说是隐藏的,不可见的,但是这并不能说这些我们常用的api就不需要设计,只不过这种设计不需要程序员实现,而是需要去理解

jvm调优属于非常后期的调优工作,往往是代码已经实现,在原有代码不修改的情况下,希望提升性能的一种途径,但是我更愿意说jvm调优其实更多的是发现业务逻辑中的bug,而不是真正进行优化,包括我看的不少书里提到的,往往也是通过jvm进行查找和定位问题,因为在代码逻辑没有问题的前提下,jvm可以调整的东西太少了,无非是垃圾回收器,栈内存和堆内存的最大和默认大小,其他东西早就有更加专业的jvm团队进行优化,而这些需要进行调整也不过是因为不同的场景需要不同的针对性设置而已

数据库调优其实也是属于设计调优范畴的,如果把SQL语句看作Java中的api,如果没有理解api的设计,就无法很好的使用这些api,这一部分,我也需要加强

操作系统调优我就不谈了,没接触过

性能优化也不是万能的,一款好的软件必然要在可维护性,稳定性,功能性上兼顾,性能优化带来的恶果往往是可维护性和稳定性下降,优化后代码可读性往往降低,还伴随稳定性的下降,所以必须要有明确的目标进行性能优化

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值