性能分析和优化实践
实际项目开发和代码研究学习过程中,总结的性能分析方法和优化实践经验。
小雷FansUnion
懂商业的技术合伙人。个人微信:FansUnion
微信订阅号:XiaoLeiFansUnion。
-
原创 性能优化攻略
性能优化攻略:概述性能优化的 指标(执行时间、CPU时间、内存分配、磁盘吞吐量、网络吞吐量、响应时间),性能瓶颈(磁盘IO、网络、CPU、异常、数据库、锁竞争、内存)。2013-12-08 11:48:094161
0
-
原创 一个Web报表项目的性能分析和优化实践(七):性能监测工具JavaMelody
JavaMelody 能够监测Java或Java EE应用程序服务器,并以图表的方式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、 Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。2013-11-30 09:18:443538
2
-
原创 一个Web报表项目的性能分析和优化实践(六):设置MySQL的最大连接数(max_connections)
就是这么一个简单的事,花了几个小时,查询很多资料,请教好友同事“飞鸟”,才搞定这个问题。问题中存在问题,问题中存在陷阱,是这个问题的真实写照。2013-11-06 15:42:483308
0
-
原创 一个Web报表项目的性能分析和优化实践(五):重构有助于性能优化么?
重构是否有助于性能优化,是一个见仁见智的问题。根据我有限的重构和优化经验,只能说,“重构有助于优化性能,但作用有限”。打个比喻,当你学画画,想要画一个苹果的时候,“把苹果洗干净”是否有助于你画出一个逼真的苹果呢?你是怎么看待这个问题的呢?愿闻其详...2013-11-04 17:13:582863
8
-
原创 一个Web报表项目的性能分析和优化实践(四):MySQL建立索引,唯一索引和组合索引
1.为所有的表建立了唯一索引,索引字段是主键id。2.对Data表建立组合索引。建立索引之前,需要花费2.796秒。建立索引之后,只需要0.136秒。2013-11-01 09:35:133189
2
-
原创 一个Web报表项目的性能分析和优化实践(三) :提高Web应用服务器Tomcat的内存配置,并确认配置正确
上一篇,总体讲述了项目中的一些情况。小试牛刀,统一显示了Web项目SQL语句的执行时间。本篇,将重点介绍提高Web应用服务器Tomcat的内存配置,并确认配置正确的方法。2013-10-31 18:36:273546
2
-
原创 一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例
最近,项目中遇到了数据库连接不够的问题。异常信息com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Data source rejected establishment of connection, message from server: "Too many connections"根据更详...2013-10-28 13:01:014968
2
-
原创 一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间
最近,在开发和优化一个报表型的Web项目,底层是Hibernate和MySQL。当报表数据量大的时候,一个图表要花4秒以上的时间。2013-10-30 08:40:033998
4
-
原创 极速响应Excel数据报表请求的一种方法
通过缓存和维护Excel Workbook实例,极速响应Excel数据报表请求。维护一份Workbook资源池。程序启动后,写一个定时器,监控资源池中的对象数量,达到资源下界的时候,就构造一些新的对象放进资源池中。2013-10-23 22:02:552979
2
-
原创 OpenJDK源码研究笔记(五)-缓存Integer等类型的频繁使用的数据和对象,大幅度提升性能(一道经典的Java笔试题)
本文先给出一个看似很简单实则有深意的Java笔试面试题,引出JDK内部的缓存。JDK内部的缓存,主要是为了提高Java程序的性能。你能答对这道“看似简单,实则有深意”的Java题目?2013-10-20 09:37:494050
1
-
原创 OpenJDK源码研究笔记(三)-RandomAccess等标记接口的作用
标识接口是没有任何方法和属性的接口。它仅仅表明它的类属于一个特定的类型,供其他代码来测试允许做一些事情。下面来看一个标记接口RandomAccess。public interface RandomAccessList 实现所使用的标记接口,用来表明其支持快速(通常是固定时间)随机访问。此接口的主要目的是允许一般的算法更改其行为,从而在将其应用到随机或连续访问列表时能提供良好的性能。将操作随机访问列2013-10-17 12:43:593403
8