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