首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
一个Web报表项目的性能分析和优化实践(五):重构有助于性能优化么?
】的更多相关文章
一个Web报表项目的性能分析和优化实践(五):重构有助于性能优化么?
项目从初次开发到现在,已经快3年了.期间,有N个工程师参与过. 需求方面:增加减少,反反复复,无数次:人力方面:增加减少,不稳定:时间方面:功能开发着急上线,Bug开发紧急修复. 因此,代码臃肿,问题颇多. 自从毕业加入到项目,深感代码质量问题对项目开发效率的影响,因此经常会对项目进行"重构"和"优化". 主要经历了2次大的重构和无数次小的改进. 今天,特别整理下,希望今后可以做得更好. 重构事项 1.统一标准. 包.类.方法.字段等命名按照Java标准规范那样…
一个Web报表项目的性能分析和优化实践(四):MySQL建立索引,唯一索引和组合索引
先大致介绍下项目的数据库信息. 数据库A:主要存放的通用的表,如User.Project.Report等. 数据库B.C.D:一个项目对应一个数据库,而且这几个项目的表是完全一样的. 数据库表的特点 A中的表:数据量几乎都比较小,比如User表中用户数,顶多也就几百上千. B中的表:X/Y/Z 3张表几乎是确定的,Data表 中的数据量比较大,几千万到上亿. 周期性的会加入一大批数据,比如,每月末增加几百万条数据. 即一般情况下,B中的表只有查询操作,而且特别是Data查询频繁且数据量很大. 建…
一个Web报表项目的性能分析和优化实践(三) :提高Web应用服务器Tomcat的内存配置,并确认配置正确
摘要 上一篇,一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间 ,讲述了项目优化的整体背景,重点讲述了统一显示了Web项目SQL语句的执行时间. 本篇,将重点介绍提高Web应用服务器Tomcat的内存配置,并确认配置正确的方法. 背景 这个Web报表项目,用的Linux系统,Web应用服务器使用的是Tomcat7.0. 根据已有程序开发的经验,我认为手动分配和提高Tomcat的内存,能够降低Web请求响应时间,提高系统的性能. 手动提高Tomcat内存前后的响应…
一个Web报表项目的性能分析和优化实践(六):设置MySQL的最大连接数(max_connections)
在上一篇文章中"一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例"提到,项目中新增几个数据库后,数据库最大连接数达到了默认的最大值100.此时,如果再创建连接,就会报错(TooManyConnections). 因此,需要手动设置MySQL的最大连接数(max_connections). 就是这么一个简单的事,花了几个小时,查询很多资料,请教好友同事"飞鸟",才搞定这个问题. 问…
[置顶] 一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间
最近,在开发和优化一个报表型的Web项目,底层是Hibernate和MySQL. 当报表数据量大的时候,一个图表要花4秒以上的时间. 以下是我的分析和体会. 1.我首先需要知道哪些函数执行了多少时间,哪些sql花了多少时间. a.最笨最简单的方法是,每一个函数的调用开始和结尾都保存开始时间startTime和结束时间endTime, 进行计算. b.写一个“拦截器”,拦截每一个方法的执行,计算时间. 这个又太难了,没啥思路. c.想到Hibernate查询,真正执行sql语句的方…
一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间
最近,在开发和优化一个报表型的Web项目,底层是Hibernate和MySQL. 当报表数据量大的时候,一个图表要花4秒以上的时间. 以下是我的分析和体会. 1.我首先需要知道哪些函数执行了多少时间,哪些sql花了多少时间. a.最笨最简单的方法是,每一个函数的调用开始和结尾都保存开始时间startTime和结束时间endTime, 进行计算. b.写一个"拦截器",拦截每一个方法的执行,计算时间. 这个又太难了,没啥思路. c.想到Hibernate查询,真正执行sq…
一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例
最近,项目中遇到了数据库连接不够的问题. 异常信息com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections" 根据更详细的错误信息,我定位到报错的函数位置. 关键函数 /** * 判断数据库是否存在 */ public…
一个Web报表项目的性能分析和优化实践(七):性能监测工具JavaMelody
简介 JavaMelody 能够监测Java或Java EE应用程序服务器,并以图表的方式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求.sql请求.jsp页面与业务接口方法(EJB3.Spring. Guice)的执行数量,平均执行时间,错误百分比等. 图表可以按天,周,月,年或自定义时间段查看. 使用步骤 1.下载JavaMelody. 下载地址:http://code.google.com/p/javamelody/downloads/…
百度APP移动端网络深度优化实践分享(一):DNS优化篇
本文由百度技术团队“蔡锐”原创发表于“百度App技术”公众号,原题为<百度App网络深度优化系列<一>DNS优化>,感谢原作者的无私分享. 一.前言 网络优化是客户端几大技术方向中公认的一个深度领域,所以百度App给大家带来网络深度优化系列文章. 本系列文章目录如下: <百度APP移动端网络深度优化实践分享(一):DNS优化篇>(* 本文) <百度APP移动端网络深度优化实践分享(二):网络连接优化篇> <百度APP移动端网络深度优化实践分享(三):移…
App架构师实践指南六之性能优化三
App架构师实践指南六之性能优化三 2018年08月02日 13:57:57 nicolelili1 阅读数:190 内存性能优化1.内存机制和原理 1.1 内存管理内存时一个基础又高深的话题,从认识内存到使用内存,再到管理内存,伴随着编程生涯.程序本身只是一个内存中数据不断迁移和CPU不断进行数值运算的过程,一层层高级语言和软件工程将这个复杂过程更加条理有序地去组织了,避免了“重复制造车轮”的繁琐,但内存问题的本身是不可避免的. 1.2 Android内存机制Android本身既支持jav…