文章目錄
  1. 1. 前言
  2. 2. 准备
  3. 3. 计划
    1. 3.1. 查看并监控系统资源
    2. 3.2. profile 分析
    3. 3.3. 线程分析
    4. 3.4. JVM 内存分析
    5. 3.5. IO 分析
  4. 4. 问题
    1. 4.1. 语言
    2. 4.2. gitbook

给自己定个计划,通过写作的方法总结Java性能调优方法的知识点。

前言

大概在10年前,也就是2004年,第一次接触到Java应用性能测试这个领域,算来有10年了。

不过遗憾的是,每次都研究的不深,大体上都是跑跑压力测试,看看测试结果,发现不能满足要求,就试试看能不能找到一些瓶颈所在,修复后继续测。一般重复几轮之后,发现性能能满足要求了(或者是难于达到更高),就欢天喜地的结束了——大多数情况下,性能调优通常都不是一件容易的事情,自然也往往不会令人愉悦。

前前后后,陆陆续续的调了这么多年,搞定过不少问题,也积累了一些经验。但是都停留在比较肤浅的水准,而且不成体系,还经常出现忘记上次是怎么搞定类似问题的尴尬……

另外,即使是这半桶水,也找不到合适的方式可以分享给团队成员。

所以打算将一些相关的知识,如工具,技巧,方法,理念,经验,教训……整理记录下来,一方面可以得到一份系统的资料用于团队分享和学习,另一方面也可以借此机会重新好好学习一下相关知识。

准备

关于写的方式,原本准备用blog的形式。但是前不久看到gitbook的介绍,感觉用gitbook用书的形式来写可以让内容整理的更好一些。

当然“书”这个词,似乎有些“大”。感觉上可能用教程,资料,tips之类的更贴切一些。不过不管了,虽然心虚了点,但是“书”这次词用着还是感觉更爽一些,就让我虚荣一把把。

计划

计划就是没有什么具体计划,内容方面大体上只能是想到哪写到哪,至于时间完全无法保证……

我只能说尽力了。毕竟前不久才给自己列了一份2014年的学习计划,沉甸甸的,让我压力很大。

如果一定要列一个计划,那么大概会有一下内容吧:

查看并监控系统资源

profile 分析

传统的性能调优方式,通过一些profile工具,在运行时收集并统计信息,以供分析。

线程分析

这个目前主要是通过 thread dump 分析,我的最爱了。

JVM 内存分析

感觉最有技术难度的就是这种事情了,成也不成貌似都没有把握,颇有碰运气的感觉。

不过说到底还是技术不到家,底气不足,希望借此机会加强一下。

IO 分析

包括文件IO和网络IO,在考虑数据库是否要算在里面?如果是的话,貌似范围大了点,尤其我也不是DBA……

问题

语言

有个很头疼的问题,就是用什么语言来写这本书:中文,还是english?

最后的想法是,放在github上的这份,先用中文,目标是整理好资料,先搞定内容。将来给公司整理的时候,再用我那蹩脚的english重新写一遍。

gitbook

第一次用gitbook,貌似网上也没有找到合适的教程或者资料,不清楚是否能如它自己描述的那么美好。

姑且信它,试试看。

文章目錄
  1. 1. 前言
  2. 2. 准备
  3. 3. 计划
    1. 3.1. 查看并监控系统资源
    2. 3.2. profile 分析
    3. 3.3. 线程分析
    4. 3.4. JVM 内存分析
    5. 3.5. IO 分析
  4. 4. 问题
    1. 4.1. 语言
    2. 4.2. gitbook