性能啊!性能!
之所以想写写性能调优,也是有感于我们的项目,我们採用一些手段使得系统性能上升了一个台阶,总是须要把这点经验沉淀一下。随着工作的深入,关于系统性能的事肯定还有非常多,也算是通过这个系列文章做做笔记。优化可能包含应用级别的优化,也可能包含代码级别的优化。

“要进行优化,先得找到性能瓶颈!”

忘记是从哪里看到了这句话,但总算切中要害。
但在找性能瓶颈之前,我们总要先对系统性能有一个概念。
怎样在不购买新硬件的条件下完毕很多其它的工作?何时才真正须要加入硬件(很多其它的内存,更快的磁盘、 CPU以及网络接口)?有时仅仅需消除一些简单的瓶颈就可以解决很多性能问题——可是要实现它,你必须充分了解自己的计算机和网络,从而找到真正的瓶颈所在。在预算短缺的今天,理解怎样优化系统性能比以往不论什么时候都重要。一味地投资并非可以让人们接受的办法——而且也不一定生效
-------《系统性能优化》

再看两篇文章吧
Web开发中,你须要了解的东西
http://www.kuqin.com/web/20111207/315835.html

由12306.cn谈谈站点性能技术

http://www.kuqin.com/system-analysis/20120116/317410.html

看了上面的陈述,相信你已经有所感触,说得直白一点,系统性能就是在尽可能降低投资的情况下,解决以下两个事:
  1. Throughput ,吞吐量。也就是每秒钟能够处理的请求数,任务数。
  2. Response time, 响应时间。也就是系统在处理一个请求或一个任务时的响应时间。
我们要做优化,就是为了让吞吐量更大,让响应时间更短,在二者之间达到平衡,满足我们的业务要求。
所以,我们要发现性能瓶颈,事实上就是找到影响吞吐量和响应时间的地方。
怎么找?
使用工具!
这里提到了

十个免费的Web压力測试工具

http://coolshell.cn/articles/2589.html
工具还有非常多,上面10个,我没有亲自用过,只是,我倒是用过一个測试java web项目性能的工具:javamelody
JavaMelody可以在QA和实际运行生产环境监測Java或Java EE应用程序server。并以图表的形式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、Guice)的运行数量,平均运行时间,错误百分比等。图表可以按天,周,月,年或自己定义时间段查看。

截张图给大家看看

这仅仅是一部分图标,它提供的信息要远比这丰富。
工具和方法论说多了无益,下篇文章给大家来点猛料。
发现瓶颈,怎么办?别急着去找程序的麻烦,先去操作系统,操作系统的报告。看看操作系统的CPU利用率,看看内存使用率,看看操作系统的IO,还有网络的IO,网络链接数,等等。通过了解操作系统的性能,我们才知道性能的问题,比方:带宽不够,内存不够,TCP缓冲区不够,等等,非常多时候,不须要调整程序的,仅仅须要调整一下硬件或操作系统的配置就能够了。说这些是为了提醒你,不要急着去改动你的代码。
假设到了非要动代码的地步,瓶颈这东西也能够依据2:8原则来说,20%的代码耗了你80%的性能,找到那20%的代码,你就能够优化那80%的性能。所以,紧紧锁定那不到20%的代码。
兴许文章,我会列举一些项目中性能调优的经验,供大家參考,也欢迎补充。

转载于:https://www.cnblogs.com/mfrbuaa/p/4487008.html

《java系统性能调优》--1.发现瓶颈相关推荐

  1. 《java系统性能调优》--3.数据库

    这是我前几天整理的一篇 数据库优化的文章,贴出来与大家共享. 据统计,以数据库为中心的应用程序80%的性能问题是低效的SQL语句引起的,所以SQL的性能优化显得十分重要.另一方面,Oracle数据库应 ...

  2. Java性能调优实践

    作者:张 俊城, 郭 理勇, 和 刘 建 https://www.ibm.com/developerworks/cn/java/j-lo-performance-tuning-practice/ind ...

  3. 成为Java GC专家(5)—Java性能调优原则

    2019独角兽企业重金招聘Python工程师标准>>> 这是"成为Java GC专家"系列的第五篇文章.在第一篇深入浅出Java垃圾回收机制中,我们已经学习了不同 ...

  4. 怎么对 Java 程序调优?不看别后悔!

    Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢.接口超时,服务器负载高.并发数低,数据库频繁死锁等. 尤其是在"糙快猛"的互联网开发模式大行其道的今天,随着 ...

  5. java必读书籍_最佳5本Java性能调优书籍–精选,必读

    java必读书籍 为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来. 仅当我在用Java编写的任务关键型服务器端财务 ...

  6. 最佳5本Java性能调优书籍–精选,必读

    为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来. 仅当我在用Java编写的任务关键型服务器端财务应用程序中遇到严重 ...

  7. Android系统性能调优工具介绍

    经作者授权,发表Tieto某青年牛的一篇<程序员>大作. Android系统性能调优工具介绍 在软件开发过程中,想必很多读者都遇到过系统性能问题.而解决系统性能问题的几个主要步骤是: 测评 ...

  8. 原理剖析(第 013 篇)应用系统性能调优

    原理剖析(第 013 篇)应用系统性能调优 - 一.大致介绍 1. 本人接手的一个打车系统,因为出现了一次响应十分缓慢的情况,因此才有了应用调优的篇章: 2.由于过程中可能没有阐述的太清楚,如想详细了 ...

  9. 《Java性能调优实战》笔记(一)Java编程性能调优、多线程性能优化

    文章目录 一.Java性能调优概述 1.1 性能调优标准 1.2 制定性能调优策略 二.Java编程性能调优 2.1 字符串 2.2 正则表达式 2.3 ArrayList和LinkedList的选择 ...

最新文章

  1. [JAVA EE] 内联用法
  2. SAP MM供应商主数据表
  3. 这是Nginx的负载均衡配置方法
  4. 初学Java Web(4)——Servlet学习总结
  5. 怎么用esc服务器做网站,云服务器esc能做网站
  6. Nacos源码NacosServiceRegistryAutoConfiguration
  7. 安卓java音乐播放器下一曲_Android实现简单音乐播放器(MediaPlayer)
  8. MyBatis_1 简介
  9. Matlab中的continue、break和return语句
  10. oracle12输出文件性能慢,输出选项 (Oracle Solaris Studio 12.2:性能分析器)
  11. 20171113_Python学习五周一次课
  12. dubbo原理_Dubbo原理浅析
  13. 学习使用Mathematic
  14. TwinCAT 3 马达程序
  15. QQ定时发消息vbs代码
  16. 微信公众平台接口测试帐号登录
  17. python 网页爬虫,带登陆信息
  18. 距离度量:欧氏距离,余弦距离,KL散度,马氏距离(含python代码实现)
  19. 使用spoon(kettle)工具抽取Elasticsearch的数据并入库
  20. java的mysql分页查询语句怎么写_java的mysql连库 增删改查语句、分页查询语句大全...

热门文章

  1. show table status 参数详解
  2. hdu 1698 Just a Hook(线段树区间修改)
  3. 全球搜索引擎盛会在即 呼叫搜索模式呼之欲出
  4. 翻身的废鱼——论PHP从入门到放弃需要多久?13
  5. Apache james 2.3.2.1启动失败换成2.3.2版本就好
  6. python数据结构list的extend与append的差别
  7. wireshark in text mode: tshark
  8. Cisco IOS Site-to-Site Pre-share Key ×××
  9. 艾伟_转载:.NET Discovery 系列之二--string从入门到精通(勘误版下)
  10. Linux服务器的攻防技术