您的位置:首页 > 编程语言 > Java开发

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

2014-07-18 12:19 459 查看
第一章, Java性能调优概述

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

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

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

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

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

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

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

从黑盒的角度分析,可以通过一系列的工具,系统工具,或者Java性能监测工具,从宏观的层度来观测系统的性能问题。通过这些工具,一般能获取系统存在哪方面的性能问题,能为问题的最终定位提供指示性的方向。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 性能优化