- 浏览: 52931 次
- 性别:
文章分类
最新评论
性能的优化一般可以从多方面入手,前端资源,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 658上周进行了linux环境下sftp的配置和用户权限的创建:ht ... -
java webService之CXF的使用
2018-03-29 14:25 447使用场景:华为VOD系统与媒资系统的接口,资产数据(元数据XM ... -
java 中jstat的用法
2018-03-20 18:06 719JDK自带VM分析工具jps,jstat,jmap,jcons ... -
jvm gc日志检查
2018-03-20 15:08 368JVM的GC日志的主要参数包括如下几个: -XX:+Pr ... -
负载均衡的几种原理
2018-03-19 16:05 472什么是负载均衡? 就 ... -
基于TCP协议实现RPC
2018-03-19 11:28 714RPC的全称:Remote Process Call,即远程过 ... -
java 多线程
2018-03-16 13:29 354Java 多线程编程 Java 给 ... -
SpringMVC执行流程图
2018-03-15 10:46 471SpringMVC 流程图 DispatcherServle ... -
Java中BIO、NIO、AIO的原理及其区别
2018-03-12 17:34 661IO的处理方式通常分为 ... -
基于Spring 自定义标签实现
2017-11-30 09:26 556一、源码分析: Spring标签的定义分为默认标签和自定义 ... -
java二维码的生成和解析
2017-09-26 11:15 434一、本文目的: 为了研究对支付宝和微信支付的统一路口管理 ... -
spring-data-redis
2017-09-18 11:54 732Spring-data-redis使用 1、maven依赖 ... -
java,redis
2017-09-18 11:32 358Redis 简介 Redis 是完全开源免费的,遵守BSD协议 ... -
Java xml与实体Bean的转换
2017-09-05 15:24 7001、pom.xml依赖包: <dependenc ... -
Java JVM虚拟机知识要点
2017-08-30 10:25 5961、JVM虚拟机图解: ... -
java 上传小于占用空间为4k的jpg图片异常问题处理
2017-07-19 18:02 529javaWeb上传图片 jpg占用空间为4k时,Commons ... -
Springmvc 注入字符串与时间格式的转换
2017-03-24 11:10 1196以下列出两种spring支持的时间转换 -、方式一 1、 ... -
linux下修改war包
2017-03-06 15:32 1100Linux上修改war包上的文件 www.MyExceptio ... -
itellij idea 11.1.3 mybatis 自动构建代码
2016-11-16 09:50 445步骤一: 1、在工程中pom.xml加添 <buil ... -
intellij idea 下resin容器远程调试
2016-11-16 09:27 5385resin远程调试(我使用的是resin-4.0.41版本): ...
相关推荐
在JavaEE开发中,为了提升应用程序的性能,往往需要对数据库查询进行优化。Oracle Optimizer作为Oracle数据库的重要组成部分,在选择执行计划时发挥着关键作用。本文将从Oracle Optimizer的基础概念出发,深入探讨其...
在JavaEE应用开发中,性能优化是一个至关重要的环节,因为性能问题可能导致系统响应慢、资源浪费以及用户体验下降。以下是对影响JavaEE性能的十大问题的详细分析: 1. **缺乏正确的容量规划**:在项目启动初期,应...
在JavaEE开发中,性能优化是一个至关重要的环节,特别是在处理大量数据或复杂计算时。嵌套for循环作为常见的编程结构,其效率直接影响到程序的运行速度。本文通过一个具体的案例,探讨了如何对嵌套for循环进行性能...
#### 四、代码层面的性能优化策略 1. **使用StringBuffer或StringBuilder代替String进行字符串拼接** - **原因**:在Java中,`String`是不可变对象,这意味着每次字符串拼接操作都会创建一个新的`String`对象,这...
【JAVAEE Web开发常见性能问题】在开发和部署企业级JAVA应用程序时,性能优化是一个至关重要的环节。本文基于Steven Haines的《PRO JAVA EE 5 Performance Management and Optimization》一书,探讨了Java EE环境中...
而Android应用直接运行在移动设备上,与用户更直接接触,因此在界面设计上更注重用户体验和性能优化,适合开发各种手机应用,如社交应用、游戏、生产力工具等。 在开发流程上,JavaEE项目通常遵循MVC(Model-View-...
特别是在涉及JavaEE技术栈的应用开发时,对MySQL数据库的性能优化更是面试中的高频问题。这篇文章将详细讨论MySQL数据库性能优化的相关知识点,这不仅是Java面试的热点,也是每一位数据库管理员和开发人员应该掌握的...
java web高性能优化设计方案,有清晰的对比说明,前期架构设计原理
4. **性能优化**:源码中可能包含了各种性能优化技巧,如缓存策略、并发处理等,这些都是开发高效应用的关键。 5. **标准与自定义扩展**:通过阅读源码,我们可以了解到如何在遵循标准的同时,为特定需求定制和扩展...
Java企业应用性能优化是提升系统效率的关键,尤其是在大型企业级环境中。优化分析涉及多个层面,包括基础性能原理、性能调优基础、特定于JavaEE的优化策略以及回顾重要的理论法则。以下是对这些知识点的详细说明: ...
- J2EE、JSP、Servlet、EJB等JavaEE相关技术的性能优化方法。 - WebLogic Server和OpenSymphony等应用服务器的使用技巧。 7. JDBC和数据库操作优化(2.13节): - JDBC Unicode和I/O操作的性能影响。 - 优化...
在JavaEE环境中,分布式缓存常用于存储会话数据、数据库查询结果等频繁访问的数据,避免了多次查询数据库带来的性能瓶颈。 **工作原理** 分布式缓存通常采用哈希分区策略,将数据分散到不同的节点上。当请求到达时...
在实际开发过程中,还需要考虑权限控制、异常处理、性能优化、安全防护等多方面因素,以确保系统的稳定、高效和安全。对于开发者来说,熟悉JAVAEE规范、精通Oracle数据库操作以及具备良好的软件工程实践是必不可少的...
此外,性能优化也是关键,如通过缓存技术减少数据库访问,使用负载均衡提高服务可用性,以及对数据库进行合理的索引设计等。 总结,JavaEE火车订票系统是一个涵盖多方面技术的实战项目,涉及到Web开发的基础知识和...
这些操作有助于性能优化,但同时也面临历史数据占用大量空间的挑战。设计良好的数据库结构能够有效地管理这些历史数据,提升数据库的查询效率和系统性能。 知识点5:事务处理 JavaEE在处理事务管理时,规定在Web层...
《毕业JavaEE设计说明书》是作者在导师指导下深入研究JavaEE技术体系并完成的一项研究成果。...此外,作者可能还探讨了系统设计原则、性能优化、安全性等方面的问题,以展示其对JavaEE全面而深入的理解。
6. 维护:定期更新,修复bug,优化性能。 总的来说,"Javaee --- 学生成绩管理系统"是一个综合运用了JavaEE、MySQL和JSP等技术的典型应用,旨在提高教育机构对学生成绩管理的效率和准确性。通过合理的设计和开发,...