性能优化总结原创
Posted yuanxuelove
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能优化总结原创相关的知识,希望对你有一定的参考价值。
常用观测性能指标
- 处理能力,吞吐量、响应时间、并发连接数
- 主机指标,cpu、内存、硬盘、IO
- 数据库指标,cpu、内存、硬盘、IO、命中率、用户连接数
JAVA后台分析问题方法
Java方面主要是从两方面分析
- 线程thread dump:使用jstack
- 内存的使用情况:使用jmap ,在用着两个命令之前,先用jps把pid查出来:) jmap -dump:format=b,file=<file> <pid> 然后用visualvm工具打开
JAVA后台性能分析工具
- 下载Jprofile,比较消耗资源
- JAVA MAT:MemoryAnalyzer(MAT)
- 推荐JDK自带的工具
C:Program FilesJavajdk1.6.0_34in目录下
jvisualvm.exe
jconsole.exe
都可以看到内存泄露等问题。
- 推荐查看dump日志,用mat解析内存泄露
jps 获取 pid
jmap -dump:live,format=b,file=heap.bin <pid>
使用MAT分析工具
http://www.blogjava.net/rosen/archive/2010/06/13/323522.html
数据库优化性能方法
数据库优化思路
- 首先,理解业务和数据表至关重要,往往可以使用一两张表就可以满足业务查询的,就不要使用太多表进行查询,当业务和表优化后再使用SQL优化来解决性能问题,能解决70%左右的性能问题;
- 其次,从SQL直观找到问题,利用下面总结的SQL编写规则,来优化单个语句,能解决20%左右的性能问题;
- 然后,利用执行计划找到语句隐藏的问题,能解决10%左右的性能问题。
SQL编写规则
- 如果单表能解决的,尽量使用单表查询。一定要注意 where 条件,尽量使用有索引的列作为条件。
- 如果使用多表关联查询,尽量控制在3到4张表以内,并且表关联条件一定要有,否则会出现笛卡尔积。
- 查询语句中尽量避免子查询,尽量使用join 代替子查询。如果使用子查询,一定要有条件,尽量早过滤。
- 查询语中where条件尽量早过滤,条件下推。
- 禁止隐士转换,数值类型禁止加引号,字符串类型必须加引号。
- 尽量使用 union all/union 来代替 or。
- 尽量用 union all 代替 union。
- 禁止使用 select * 。
- 全模糊查询无法使用 index,应该尽量避免。比如 like ‘%ss%‘。
- select for update 语法,尽量避免。
- select id,name from t1 limit 10000,10 可以改成 select id,name from t1 where id>=10000 limit 10;
- 不需要排序、去重、分组的,就不要使用它们。
原创作品,若转走,请尊重版权,标注来源,谢谢!
以上是关于性能优化总结原创的主要内容,如果未能解决你的问题,请参考以下文章
(原创)[C#] GDI+ 之鼠标交互:原理示例一步步深入性能优化