Java 程序性能优化 --读书笔记 1

第一章, Java性能调优概述

对Web服务器而言,服务器的响应时间和吞吐量是两个重要的性能参数。

一般来说,程序性能通过以下几个方面来表现:

  • 执行速度:程序的反应是否迅速,响应时间是否足够短。
  • 内存分配:内存分配是否合理,是否过多的消耗内存或者存在泄露。
  • 启动时间:程序到启动到可以正常处理业务需要花费多久时间。
  • 负载承受能力:当系统压力上升时,系统的执行速度,响应时间的上升曲线是否平缓。

性能的参考指标:

  • 执行时间:一段代码从开始运行到运行结束,所使用的时间
  • CPU时间:函数或线程占用CPU的时间。
  • 内存分配:程序在运行时占用的内存空间。
  • 磁盘吞吐量:描述IO的使用情况
  • 网络吞吐量:描述网络的使用情况。
  • 响应时间:系统对某用户行为或事件作出响应的时间。

系统瓶颈的分析:

  • 磁盘IO:读写速度比内存慢,
  • 网络操作:依赖于网络环境,可能比磁盘IO更慢
  • CPU:
  • 异常:对异常的处理会很占用系统资源,如果频繁的处理异常,会拖累系统性能。
  • 数据库:
  • 锁竞争,
  • 内存

性能调优的层次:

  • 设计调优:从宏观层面的“质”的优化,可以规避某一个组件的性能问题,而非改良该组件的实现。
  • 代码调优:微观层面的代码优化。
  • JVM调优:调整JVM的参数,
  • 数据库调优:
  • 操作系统调优:

性能调优,一般的做法,从白盒的角度,首先需要做好系统的调研工作,了解系统架构,模块之间的协作和接口,通过对接口之间的监测,可以定位出现性能问题的具体模块,逐渐缩小scope,最终定位问题。

从黑盒的角度分析,可以通过一系列的工具,系统工具,或者Java性能监测工具,从宏观的层度来观测系统的性能问题。通过这些工具,一般能获取系统存在哪方面的性能问题,能为问题的最终定位提供指示性的方向。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值