- 浏览: 49876 次
- 性别:
文章分类
最新评论
性能的优化一般可以从多方面入手,前端资源,java程序,数据传输,结果缓存,数据库,jvm的GC,甚至硬件层等。
一、前端优化
影响页面性能的因素很多;
1、页面请求Http数量。
新建一个http连接需要经历tcp协议握手建立连接状态等过程,并且大部分请求和相应包含了cookie和header内容,增加网络带宽的消耗。因此、减少HTTP请求的数量能够加速页面的加载。可以通过采取合并样式和脚本文件等措施,来减少页面加载所需要请求。
设置html页面缓存方法:
静态的html页面想要设置使用缓存:
通过HTTP的META设置expires和cache-control
2、是否使用CND网络。
CDN网络能够使用户就近原则的取得所需要的资源,降低静态资源传输的网络延迟。
3、是否使用压缩。
对前端的js,css等静态资源文件可以去掉不要的注释和空格,空行等。使用gzip压缩来减少
网络上传输的字节数。当然,压缩是有成本的,会消耗服务器的cpu资源,但通常这种开销是值得的。
其他的规则还包括将样式放在页面首部加载,将js脚本放在底部加载,避免CSS样式,减少CDN查找等。
二、java程序优化
java代码的优化是找到执行java缓慢的代码,想尽办法对原有的代码进行优化。如使用单例模式,减少系统开销,将单线程变多线程,提升资源利用率,采用选择就绪模式,提供并发吞吐量,对于互不影响的流程,可以使用Future模式来提升任务效率。。。通过这些措施来提高程序的性能。
1、单例
对于I/O处理,数据库连接,配置文件解析加载等耗资源的操作,必须对这些实例创建进行限制,或使用一个公共实例。以减少系统开销。
2、Future模式。
Future模式有点类似于网上购物,在你购买商品,订单生效之后,你可以去做自己的事情,等待商家通过快递给你送货上门。Future模式就是,当某一程序提交请求,期望得到一个答复。但是可能服务器程序对这个请求的处理比较慢,因此不可能马上收到答复。但是,在传统的单线程环境下,调用函数是同步的,它必须等到服务程序返回结果,才能继续进行其他处理。而Future模式下,调用方法是异步的,原本等待返回的时间段,在主调函数中,则可以处理其他的任务
结果输出:
一、前端优化
影响页面性能的因素很多;
1、页面请求Http数量。
新建一个http连接需要经历tcp协议握手建立连接状态等过程,并且大部分请求和相应包含了cookie和header内容,增加网络带宽的消耗。因此、减少HTTP请求的数量能够加速页面的加载。可以通过采取合并样式和脚本文件等措施,来减少页面加载所需要请求。
设置html页面缓存方法:
静态的html页面想要设置使用缓存:
通过HTTP的META设置expires和cache-control
<meta http-equiv="Cache-Control" content="max-age=7200" /> <meta http-equiv="Expires" content="Mon, 20 Jul 2013 23:00:00 GMT" />
2、是否使用CND网络。
CDN网络能够使用户就近原则的取得所需要的资源,降低静态资源传输的网络延迟。
3、是否使用压缩。
对前端的js,css等静态资源文件可以去掉不要的注释和空格,空行等。使用gzip压缩来减少
网络上传输的字节数。当然,压缩是有成本的,会消耗服务器的cpu资源,但通常这种开销是值得的。
其他的规则还包括将样式放在页面首部加载,将js脚本放在底部加载,避免CSS样式,减少CDN查找等。
二、java程序优化
java代码的优化是找到执行java缓慢的代码,想尽办法对原有的代码进行优化。如使用单例模式,减少系统开销,将单线程变多线程,提升资源利用率,采用选择就绪模式,提供并发吞吐量,对于互不影响的流程,可以使用Future模式来提升任务效率。。。通过这些措施来提高程序的性能。
1、单例
对于I/O处理,数据库连接,配置文件解析加载等耗资源的操作,必须对这些实例创建进行限制,或使用一个公共实例。以减少系统开销。
2、Future模式。
Future模式有点类似于网上购物,在你购买商品,订单生效之后,你可以去做自己的事情,等待商家通过快递给你送货上门。Future模式就是,当某一程序提交请求,期望得到一个答复。但是可能服务器程序对这个请求的处理比较慢,因此不可能马上收到答复。但是,在传统的单线程环境下,调用函数是同步的,它必须等到服务程序返回结果,才能继续进行其他处理。而Future模式下,调用方法是异步的,原本等待返回的时间段,在主调函数中,则可以处理其他的任务
package com.test.dao; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; public class FutureMain { private static class ChuJu{ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } private class Work implements Runnable{ public void run() { } } //网上订餐 private static class OnlineLunch implements Callable{ private ChuJu chuJu; public OnlineLunch(String name){ chuJu = new ChuJu(); chuJu.setName(name); } public ChuJu call() throws Exception { System.out.println("下单"); System.out.println("等待发货。。。。"); try { Thread.sleep(10000L); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("收到货物:"); return this.chuJu; } } public static void main(String[] args) throws InterruptedException, ExecutionException { //第一步网上订购午餐 FutureTask<ChuJu> future = new FutureTask<ChuJu>(new OnlineLunch("刀")); new Thread(future).start(); //模拟去购物菜 System.out.println("走去超市。。"); Thread.sleep(3000); System.out.println("选菜。。。"); Thread.sleep(3000); System.out.println("买菜回家。。。"); Thread.sleep(3000); if(!future.isDone()){ //如果厨具还未到,等到 System.out.println("等待厨具。。。"); } ChuJu chuJu = future.get(); //开始做菜 System.out.println("厨具:"+chuJu.getName()+"到了"); } }
结果输出:
走去超市。。 下单 等待发货。。。。 选菜。。。 买菜回家。。。 等待厨具。。。 收到货物: 厨具:刀到了
发表评论
-
java 之sftp实现
2018-03-31 17:41 615上周进行了linux环境下sftp的配置和用户权限的创建:ht ... -
java webService之CXF的使用
2018-03-29 14:25 389使用场景:华为VOD系统与媒资系统的接口,资产数据(元数据XM ... -
java 中jstat的用法
2018-03-20 18:06 674JDK自带VM分析工具jps,jstat,jmap,jcons ... -
jvm gc日志检查
2018-03-20 15:08 331JVM的GC日志的主要参数包括如下几个: -XX:+Pr ... -
负载均衡的几种原理
2018-03-19 16:05 434什么是负载均衡? 就 ... -
基于TCP协议实现RPC
2018-03-19 11:28 667RPC的全称:Remote Process Call,即远程过 ... -
java 多线程
2018-03-16 13:29 314Java 多线程编程 Java 给 ... -
SpringMVC执行流程图
2018-03-15 10:46 429SpringMVC 流程图 DispatcherServle ... -
Java中BIO、NIO、AIO的原理及其区别
2018-03-12 17:34 611IO的处理方式通常分为 ... -
基于Spring 自定义标签实现
2017-11-30 09:26 488一、源码分析: Spring标签的定义分为默认标签和自定义 ... -
java二维码的生成和解析
2017-09-26 11:15 396一、本文目的: 为了研究对支付宝和微信支付的统一路口管理 ... -
spring-data-redis
2017-09-18 11:54 697Spring-data-redis使用 1、maven依赖 ... -
java,redis
2017-09-18 11:32 321Redis 简介 Redis 是完全开源免费的,遵守BSD协议 ... -
Java xml与实体Bean的转换
2017-09-05 15:24 6381、pom.xml依赖包: <dependenc ... -
Java JVM虚拟机知识要点
2017-08-30 10:25 5661、JVM虚拟机图解: ... -
java 上传小于占用空间为4k的jpg图片异常问题处理
2017-07-19 18:02 493javaWeb上传图片 jpg占用空间为4k时,Commons ... -
Springmvc 注入字符串与时间格式的转换
2017-03-24 11:10 1146以下列出两种spring支持的时间转换 -、方式一 1、 ... -
linux下修改war包
2017-03-06 15:32 1035Linux上修改war包上的文件 www.MyExceptio ... -
itellij idea 11.1.3 mybatis 自动构建代码
2016-11-16 09:50 402步骤一: 1、在工程中pom.xml加添 <buil ... -
intellij idea 下resin容器远程调试
2016-11-16 09:27 5304resin远程调试(我使用的是resin-4.0.41版本): ...
相关推荐
javaEE-嵌套For循环性能优化案例借鉴.pdf
java web高性能优化设计方案,有清晰的对比说明,前期架构设计原理
他在性能优化和提升方面也有很深刻的见解,下面他将和大家分享一下常见的10个影响Java EE性能问题。容量规划是一个全面的和发展的过程标准,预测当前和未来的IT环境容量需求。制定合理的容量规划不仅会确保和跟踪...
本书详细介绍了以JSP 2、Struts 2、Spring 2.5、Hibernate 3.2、AJAX等主流JavaEE技术进行优化组合开发高性能大型门户网站的实践经验。针对读者的不同学习阶段,共分技术篇、实践篇与部署篇三大部分进行循序渐进地...
javaee是一个专以java进行开发的论坛网站源码。 此框架采用springMVC+mybatis+mysql,...此版本更正已知bug和性能优化,对数据表的重新设计。 正式版本现在数据在25w左右,对打开每个页面访问速度基本在一秒内完成。
3.项目后台管理系统使用Shiro实现登录验证和权限管理(超级管理员、管理员、产品编辑员),iBatis动态sql语句编写及性能优化实现快速维护数据功能,Drui作为数据源,SpringTest+JUnit简化DAO层数据访问测试、Ea
tomcat 服务器在JavaEE项目中使用率非常高,所以在生产环境对tomcat的优化也变得非常重要了,对于tomcat的优化,主要是从2个方面入手,一是tomcat本身的配置,另一个是tomcat所运行的Jvm虚拟机的调优 二、Tomcat配置...
现有的基于Web的在线考试存在的问题是,当大量用户同时提交试卷时,服务器却无法承载过多用户,这将导致系统的不稳定。Hibernate是连接Java对象模型和关系...本文针对在线考试系统存在的问题,设计并实现了性能优化方案。
唯品会架构师泣血优化文档,springside SpringSide是以Spring Framework为核心的,Pragmatic风格的JavaEE应用参考示例,是JavaEE世界中的主流技术选型,最佳实践的总结与演示。 Utils - 性能与易用性兼顾的Java基础...
淘淘商城是一个综合性的B2C平台,类似与京东、天猫商城,其打造的是商业模式为“社区+电子商务”, 用户不只是在社区中有自己的圈子,还可以将电商加入到社区中,整个电商...拔高--Redis集群、Tomcat优化、MySQL优化
大型门户网站是这样炼成的,本书详细介绍了以JSP 2、Struts 2、Spring 2.5、Hibernate 3.2、AJAX等主流JavaEE技术进行优化组合开发高性能大型门户网站的实践经验。针对读者的不同学习阶段,共分技术篇、实践篇与部署...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...
本项目为学生信息管理系统,基于JavaEE、SSH框架及SQLServer数据库构建。实现学生信息全面管理,包括基本信息...通过SSH框架优化系统性能,响应迅速,易于维护。为学生、教师及管理人员提供便捷、高效的信息管理平台。
本项目是一个基于JavaEE技术栈的原生Servlet实现的人力资源管理系统 1. **用户管理**:系统支持多角色用户登录,包括管理员、人力资源专员和普通员工。用户可以注册、登录、修改密码和注销。 2. **员工信息管理**:...
本书详细介绍了以JSP 2、Struts 2、Spring 2.5、Hibernate 3.2、AJAX等主流JavaEE技术进行优化组合开发高性能大型门户网站的实践经验。针对读者的不同学习阶段,共分技术篇、实践篇与部署篇三大部分进行循序渐进地...
Node.js:一个基于Chrome V8引擎的JavaScript运行时,用于构建高性能的后端服务。 Java:一种广泛用于后端开发的编程语言,常用于构建企业级应用。 Python:一种多用途编程语言,在Web开发中常用。 Ruby on Rails:...
系统的架构设计注重性能、可用性和可维护性,以支持高并发的用户访问和动态的数据更新。其模块化的设计也便于未来根据校园的具体需求或技术发展增加新功能或升级现有功能,确保软件的长期适用性和技术前瞻性。
包括编译器、构建工具(如Make、Gradle、Maven)等,用于将源代码转换为可执行文件或库,并进行资源打包、优化等处理。 调试与测试: 集成调试器允许开发者逐行执行代码,设置断点、查看变量值、跟踪调用堆栈等...
定制开发:您可以根据实际需求对项目进行定制开发,扩展功能和优化性能。 五、结语 通过这一系列SSM Java项目的下载和学习,您将能够深入了解SSM框架的核心技术,提升自己的编程能力,并在实际业务场景中灵活应用。...
为了提高系统的稳定性和性能,我们采取了以下优化措施: - 数据库连接池的使用 - 前端静态资源的缓存 - 后端代码的优化 ## 总结 该系统实现了师生教学互动的信息管理,提高了教学效率和交流效果。在今后的开发中...