Java EE (11) - 影响性能的因素
垂直层(Tier)影响性能的因素
资源层
数据库性能
通常考虑以下方面的优化(MySQL为例):
--使用哪种存储引擎:MyISAM vs. InnoDB, MERGE, MEMORY, Federated, ARCHIVE
--使用分区机制
--建立必要的索引
--设置缓存
--调优服务器参数
Table_open_cache
max_connection
Open_files_limit
Thread_cache_size
客户端并发访问速度
受以下几个方面的影响
--事务
--锁与隔离级别
--并发用户数量
--缓存
网络速度
应用服务器与数据库服务器:同一台主机或者位于同一网段
业务层(含整合层)
层内数据与数据库的同步
同步机制大体分为两类:
--使用DAO封装JDBC代码
从性能角度考虑,应该使用连接池(javax.sql.DataSource)。
--使用O/R Mapping框架,如JPA, Hibernate等
业务层应用程序的性能
SLSB具有以下特征:
--池化管理
--复用
--极高性能
SFSB具有以下特征(可以设置高速缓存):
--及时创建
--与客户端一对一
--可升级能力远优于HttpSession
Forward cache机制--将频繁读取的数据缓存在业务层(EJB层)
Off-load shared resources--将频繁读取的数据存储在业务层的存储设备(硬盘)中。
与表示层数据交换的速度
考虑以下因素:
--网络通讯
--使用适合的模式,如传输对象模式(TO)、会话外观模式(SF)
--事务的延伸范围
表示层
Web应用程序的性能
应从以下方面考虑Web层的优化:
--使用Model 2架构
--如果存在业务层,应使用业务代理(BD)模式
--不应在HttpSession对象中保存大型对象
--避免从JSP页中转发(forward)请求
--缺省情况下不要在JSP页中创建HttpSession -- <%@ page session="false"%>
--避免过重使用逻辑标签(tag)
--合理设置HttpSession超时时间
客户端并发访问的速度
以下方面影响客户端并发访问的用户数量和速度(从服务器端看):
--主机的负载均衡(Load balance)
Session粘着机制( Session affinity)
Session Prefetch
短路
--线程池的设置
--使用缓存
--限制并发请求数
--引入中间性的应答
网络速度
--页面的请求频率与数据量(请求延迟)将影响网络速度(从客户端看)。
--设计 UI 时的考虑 - 使用尽量少的页面,每个页面尽可能包含多的信息
--典型的数据量问题: 过多的页面内容,包括页面背景音乐、Flash动画等。
--对于数据量过大的远程请求,可以考虑使用数据压缩技术。
--典型的请求频率问题: 不当地使用AJAX技术,导致过多细粒度的请求。
客户层
客户端代码
--客户层性能与服务器端整体性能无直接关系
--但客户端性能影响用户体验
考虑JavaScript代码的执行性能
考虑JS框架的性能:jQuery vs. EXT JS.
网络带宽
水平层(Layer)影响性能的因素
硬件层
--主机的性能
--复制策略的使用
操作系统层
--OS的性能
中间件层
--JVM的性能
--应用程序服务器的性能
应用程序层
--程序的结构
--编码的质量
Java EE (11) - 影响性能的因素的更多相关文章
- 理解 OpenStack Swift (3):监控和一些影响性能的因素 [Monitoring and Performance]
本系列文章着重学习和研究OpenStack Swift,包括环境搭建.原理.架构.监控和性能等. (1)OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置 ( ...
- Java SE和Java EE应用的性能调优
凡事预则立,不预则废,和很多事情一样.Java性能调优的成功.离不开行动计划.方法或策略以及特定的领域背景知识.为了在Java性能调优工作中有所成就.你得超越"花似雾中看"的状态, ...
- redis性能测试以及影响性能的因素
redis-benchmark测试工具的命令使使用方法及参数如下:redis-benchmark [-h <host>] [-p <port>] [-c <clients ...
- mysql中影响数据库性能的因素讲解
mysql中影响数据库性能的因素讲解 在本篇文章中我们给大家讲述了mysql中影响性能的因素以及相关知识点内容,有兴趣的朋友参考下 关于数据库性能的故事 面试时多多少少会讲到数据库上的事情,“你对数据 ...
- 从系统的角度分析影响程序执行性能的因素——SA20225205 黄兴宇
实验总结分析报告:从系统的角度分析影响程序执行性能的因素 1.请您根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的.自洽 ...
- 影响Java EE性能的十大问题(转)
本文作者是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE.中间件和JVM技术.他在性能优化和提升方面也有很深刻的见解,下面他将和大家分享一下常见的10个影响Java EE性能问题 ...
- 流言粉碎机:JAVA使用 try catch 会严重影响性能
目录 一.JVM 异常处理逻辑 二.关于JVM的编译优化 1. 分层编译 2. 即时编译器 1. 解释模式 2. 编译模式 3. 提前编译器:jaotc 三.关于测试的约束 执行用时统计 编译器优化的 ...
- 影响mysql性能的因素
一.服务器硬件. CPU不够快,内存不够多,磁盘IO太慢. 对于计算密集型的应用,CPU越可能去影响系统的性能,此时,CPU和内存将越成为系统的瓶颈. 当热数据大小远远超过系统可用内存大小时,IO资源 ...
- Java 中的 try catch 影响性能吗?
前几天在 code review 时发现有一段代码中存在滥用try catch的现象.其实这种行为我们也许都经历过,刚参加工作想尽量避免出现崩溃问题,因此在很多地方都想着 try catch一下. 但 ...
随机推荐
- Skype无法显示登录界面
Skype升级之后突然抽风,双击运行程序之后,输入用户名和密码的窗口都没了,截图如下(本机为Windows 7 32bit版本): 卸载重新安装,也无济于事.删除注册表中的Skype的相关信息后问题依 ...
- mojo 关闭utf8
[root@wx03 ~]# cat test.pl use Mojolicious::Lite; use JSON qw/encode_json decode_json/; use Encode; ...
- find . / -newer oldest_file.txt ! -newer newest_file.txt
如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项. 它的一般形式为: $ find . / -newer oldest_file.txt ! -newer newe ...
- SQL视图和多表连接
本篇博客关注的焦点是视图的使用以及视图和多表连接的配合.以便可以了解视图,以及更好的使用视图. 首先,还是要说明一下视图的定义:视图是基于SQL语句的结果集的可视化虚拟表,换句话说视图就是SQL查询结 ...
- Java反射机制的使用方法
Java的反射机制同意你在程序执行的过程中获取类定义的细节.有时候在程序执行的时候才得知要调用哪个方法,这时候反射机制就派上用场了. 获取类 类的获取方法有下面几种: forName().通过Clas ...
- 使用iftop网络流量监控
iftop这是一个非常有用的工具.下面的命令监视无线网卡在我的笔记本 iftop -i wlan0 比如,我现在玩音乐视频.iftop显示的信息: 基本说明: 1. 屏幕主要部分都是表示两个机器之间的 ...
- 使用visual c++ 2005远程调试64位系统上32位与64位程序
一直都挺喜欢使用visual c++远程调试代码,它能展现给我们当时代码执行最真实的情景,今天有时间记录一下,以免以后忘了. 远程调试需要在被调试端安装服务器,对于visual c++ 2005来说调 ...
- C# Http以文件的形式上传文件
以下的是上传的方法: // <summary> /// 将本地文件上传到指定的服务器(HttpWebRequest方法) /// </summary> /// <para ...
- 自学PHP 环境搭建
自学PHP之环境搭建 一..首先 安装 phpStudy2013.exe 程序集成包 安装完可能端口被占用 需要手动设置 然后打开http://localhost:8080/phpMyAdmin/ ...
- cocos2d-x中使用JNI的调用JAVA方法
用cocos2d-x公布Android项目时.都应该知道要用JAVA与C/C++进行交互时会涉及到JNI的操作(Java Native Interface).JNI是JAVA的一个通用接口.旨在本地化 ...