Java Web系统常用性能优化方式

在很多企业中,一些Web应用,在前期运行的时候由于用户量较小,系统压力不大,系统运营状态良好。随着时间的推移,可能由于企业内某项制度的变化,使得原本并不热门的系统,变成了大家日常都需要去使用的,由于用户量激增,原本系统设计和实现中存在的缺陷大量的暴露,而最不能让人容忍的是,系统的响应时间变长,甚至在某时段用户集中访问时,这一现象会变得让人难以忍受。这往往会导致相关业务部门和负责系统运维的技术人员承受很大的压力。本文将介绍如何针对这些的系统进行相应的优化和改进,即使没有相关的系统需要优化,也可以在系统设计和开发阶段避免相应的问题。

对Web系统的优化可以从三方面入手:页面、数据库和应用程序。

页面优化

我们可以通过FireBug、httpwatch等页面分析统计,对主要页面进行分析,查看这些页面需要加载到的图片、css样式、JavaScript脚本耗时多少时间,有没有加载失败的,或者无效的脚本、样式和图片。

针对分析结果,进行相应的优化,如:去除掉无效的图片、css样式、JavaScript脚本,根据工具显示的访问时间,找出加载耗时较长的图片,判断该图片是否过大。可以针对图片进行优化,比如采用图片压缩技术。这样能有效减少页面加载时间。还有一种优化方式,是将多个样式图片拼接在一张大图上,页面中的样式通过遮罩使用同一张图片不通的位置达到显示效果。

还可以采取的方式是对主要页面进行静态化处理。很多网站类的系统,首页承担着信息发布、用户登录和相关链接展示等多种功能,在访问量大的时候,有的系统首页加载都需要很长的时间,直接给用户造成较差的体验。解决这种问题单纯使用ajax延迟加载不能解决问题。建议采用网页爬虫,为首页和其他主要页面定时生成静态页面。http服务器会为系统中的静态页面体统代理,用户不需要请求应用服务器就可以直接访问首页,并进行登录等相关操作,对首页的静态化操作会大大减轻后台系统的压力。

数据库优化

针对数据库的优化主要是针对Sql查询语句的优化。这项工作相比起页面的优化工作难度要大一些,需要良好的sql功底和对系统业务的了解,但是有些系统的瓶颈就是存在于数据库。在系统设计阶段就需要对数据库表进行合理的规划,进来避免一个业务需要查询多张数据库表的设计方式。从系统优化的角度,我们需要检查系统内部是否存在多层嵌套的子查询,或者是大量使用in、like等作为条件匹配的命令。低效的查询语句会大量消耗服务器的CPU资源,造成系统响应缓慢。往往会出现某一个查询操作进行中,会导致业务请求无法得到响应,当该查询操作完成后,系统响应恢复正常,如果系统再运行中出现在用户量一定的情况下,响应时快时慢,那么很肯能是由于数据库原因造成的。可以通过命令查询最耗时的sql语句,然后根据抓取结果对系统中的sql进行优化。

现在互联网公司在系统实现时都会减小对数据库的依赖,早期设计的很多系统都会基于数据库脚本进行批量处理,现在设计的系统大都基于应用程序进行处理,采用一些NoSql的数据库部分替代关系型数据库,只有对事务性较强的数据才会存放在关系数据库中。目前应用程序的扩展性要远高于关系型数据库。

应用程序优化

程序员大都听过这样一句话:“用空间换时间”,这句话体现在编程中就是对缓存的应用,“空间”指的就是内存,同样是获取数据,从本地内存中读取所耗费的时间要远远小于从数据库、网络和硬盘中获取所需的时间。目前程序中的缓存大都是基于内存作为存储载体。可以将程序中一些很少发生变化的值存放在缓存中。主流的缓存经常使用键值对的方式存放数据,包括:memcache、redis等。

一些大型的电商网站,在遇到大型促销活动的时候,为了提高系统处理能力,在redis中实现对商品库存的同步减操作,使用大量的内存操作代替数据库操作,可以避免系统再大访问量的环境下出现数据库瓶颈。当前,互联网公司的系统大都部署在PC Server上,相比小型机,PC Server在配置和处理能力上并不逊色,只是机器发生故障的概率要高于小型机。解决这个问题的方式就是“以量取胜”,将数据和应用程序部署在多台PC Server上,这些PC Server互为主备,即使其中一台出现的问题,照样有其他机器负责提供服务,出现问题的机器上的数据和应用程序很快会被迁移到其他机器上,接着提供服务。近些年虚拟机技术的成熟,进一步降低了PC Server集群的部署成本。相对而言,扩展java虚拟机要比扩展数据库成本低(特别是Oracle)

时间: 2024-11-03 01:27:58

Java Web系统常用性能优化方式的相关文章

web开发常见性能优化方式

经常使用的高并发. 高性能web,数据库server. 1.html 静态化 : 如新闻频道更新的非常快,都是通过cms静态生成(门户,信息公布类型的站点,交互性高的如猫扑的大杂烩也是静态化,实时静态化.假设有更新就实时又一次静态化) 更新频率小的 2.图片server分离 3.数据库集群 和库表散列 有web速度缓慢.数据库缓慢. 数据库能够通过 主从数据库,受到成本影响 4. 缓存 站点开发中用到缓存 和 站点架构缓存 5.镜像 6.负载均衡 :解决高负荷和大量并发请求採用的终极解决的方法

H5缓存机制浅析-移动端Web加载性能优化【干货】

转载:H5缓存机制浅析-移动端Web加载性能优化[干货] 作者:贺辉超,腾讯游戏平台与社区产品部 高级工程师 目录 1 H5缓存机制介绍 2 H5缓存机制原理分析 2.1 浏览器缓存机制 2.2 Dom Storgage(Web Storage)存储机制 2.3 Web SQL Database存储机制 2.4 Application Cache(AppCache)机制 2.5 Indexed Database (IndexedDB) 2.6 File System API 3 移动端Web加载

web系统后端服务器优化

1,1. 没必要去优化页面模板,这都是一些很成熟的技术,就算你好不容易提升了10%的性能,这10%在整个页面的执行过程中只占了0.5%的比例,微乎其微,等于是前面例子中的4车道变8车道的傻瓜,我们不要去充当傻瓜. 2,数据库连接:使用连接池来减少连接次数:重复的数据库查询:使用缓存来避免重复的数据库查询:慢查询:使用索引来提升查询速度,使用连接查询替换子查询等. 3,静态文件和动态页面分开处理,应用服务器的集群,数据库的集群.Web网站优化三部曲:应用程序优化.系统结构优化.网络优化. 4,前端

关于大型门户网站系统的性能优化

鉴于B/S架构在维护成本和客户端配置等方面所具有的绝对优势,越来越多的系统采用了B/S架构,包括ERP.CRM等管理系统也开始向Internet靠拢.而B/S架构的系统却往往很难预计到系统并发访问数有多少,系统往往在高并发访问量的时候出现性能瓶颈,具体表现为页面提示超时信息或者提示数据库抛出的异常信息.为此,针对于B/S架构的面向Internet的系统,尤其是像淘宝.当当网等日访问量超过20余万的大型门户网站进行性能优化是势在必行! 针对大型门户网站系统的性能优化方案有以下几种: (1)页面静态

web项目代码性能优化

这是我第一次使用博客园,以后它将陪伴我IT工作生活的一部分,以后每次有工作体会和成长我都会用它记录下来. 今天的第一篇文章是我测试的好朋友发给我的<淘宝前台系统性能分析与优化>,看完后,我结合自己开发经历整理了几个简单的编码习惯的改变,这样有助于你程序和系统系能的有限提升. 只有从小事做起,例如从注重以下几个编码习惯,虽然只能有限的提升性能,但从细节入手之后才能有更大的提升,最后才可能达到从架构和服务器方面的优化来提高系能. 以下优化措施都是非必须的,根据具体情况采取相应优化措施即可. 一.服

Docker学习笔记三:Docker部署Java web系统

Docker部署Java Web系统 1.在root目录下创建一个路径test/app mkdir test && cd test&& mkdir app &&cd app 2.将apache-tomcat-7.0.29.tar.gz及jdk-7u25-linux-x64.tar.gz拷贝 到app目录下 3.解压两个tar.gz文件 tar -zxvf apache-tomcat-7.0.29.tar.gz tar -zxvf jdk-7u25-linux

Web应用程序性能优化学习笔记

Web应用程序性能优化学习笔记 1. 使用瀑布图初步诊断网站性能瓶颈 一般来说,打开一个网页的速度会受到以下几项的影响: 1) 服务器花了太长的时间将.aspx页面的内容转化为html. 2) .aspx页面花了太长的时间从服务器端将内容发送到客户端. 3) 页面上的图片或者flash文件花了太长的时间从服务器端发送到客户端. 4) JavaScript和CSS文件阻塞页面渲染. 我们可以使用“瀑布图”来确定一个页面的性能问题是由于哪一项造成的.FireBug.Chrome自带的“开发人员工具”

Java Web HTTP协议的提交方式

TTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式: OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法.也可以利用向Web服务器发送'*'的请求来测试服务器的功能性. HEAD 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回.这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息. GET 向特定的资源发出请求.注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web App

H5 缓存机制浅析 移动端 Web 加载性能优化

1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性.离线存储(也可称为缓存机制)是其中一个非常重要的特性.H5 引入的离线存储,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. H5 应用程序缓存为应用带来三个优势: 离线浏览 用户可在应用离线时使用它们 速度 已缓存资源加载得更快 减少服务器负载 浏览器将只从服务器下载更新过或更改过的资源. 根据标准,到目前为止,H5 一共有6种缓存机制,有些是之前已有,有些是 H5 才新加入的. 浏览