垂直层(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) - 影响性能的因素的更多相关文章

  1. 理解 OpenStack Swift (3):监控和一些影响性能的因素 [Monitoring and Performance]

    本系列文章着重学习和研究OpenStack Swift,包括环境搭建.原理.架构.监控和性能等. (1)OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置 ( ...

  2. Java SE和Java EE应用的性能调优

    凡事预则立,不预则废,和很多事情一样.Java性能调优的成功.离不开行动计划.方法或策略以及特定的领域背景知识.为了在Java性能调优工作中有所成就.你得超越"花似雾中看"的状态, ...

  3. redis性能测试以及影响性能的因素

    redis-benchmark测试工具的命令使使用方法及参数如下:redis-benchmark [-h <host>] [-p <port>] [-c <clients ...

  4. mysql中影响数据库性能的因素讲解

    mysql中影响数据库性能的因素讲解 在本篇文章中我们给大家讲述了mysql中影响性能的因素以及相关知识点内容,有兴趣的朋友参考下 关于数据库性能的故事 面试时多多少少会讲到数据库上的事情,“你对数据 ...

  5. 从系统的角度分析影响程序执行性能的因素——SA20225205 黄兴宇

    实验总结分析报告:从系统的角度分析影响程序执行性能的因素 1.请您根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的.自洽 ...

  6. 影响Java EE性能的十大问题(转)

    本文作者是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE.中间件和JVM技术.他在性能优化和提升方面也有很深刻的见解,下面他将和大家分享一下常见的10个影响Java EE性能问题 ...

  7. 流言粉碎机:JAVA使用 try catch 会严重影响性能

    目录 一.JVM 异常处理逻辑 二.关于JVM的编译优化 1. 分层编译 2. 即时编译器 1. 解释模式 2. 编译模式 3. 提前编译器:jaotc 三.关于测试的约束 执行用时统计 编译器优化的 ...

  8. 影响mysql性能的因素

    一.服务器硬件. CPU不够快,内存不够多,磁盘IO太慢. 对于计算密集型的应用,CPU越可能去影响系统的性能,此时,CPU和内存将越成为系统的瓶颈. 当热数据大小远远超过系统可用内存大小时,IO资源 ...

  9. Java 中的 try catch 影响性能吗?

    前几天在 code review 时发现有一段代码中存在滥用try catch的现象.其实这种行为我们也许都经历过,刚参加工作想尽量避免出现崩溃问题,因此在很多地方都想着 try catch一下. 但 ...

随机推荐

  1. MySQL installer

  2. dwz框架---(2)表单回调函数

    dwz中的表单回调函数大概有下面几种: /** * 普通ajax表单提交 * @param {Object} form * @param {Object} callback * @param {Str ...

  3. 与众不同 windows phone (17) - Graphic and Animation(画图和动画)

    原文:与众不同 windows phone (17) - Graphic and Animation(画图和动画) [索引页][源码下载] 与众不同 windows phone (17) - Grap ...

  4. 14.2.5.6 Adaptive Hash Indexes 自适应Hash Indexes

    14.2.5.6 Adaptive Hash Indexes 自适应Hash Indexes adaptive hash index(AHI) 让InnoDB 执行更加像在一个内存数据库里在, 在不牺 ...

  5. HOJ 2245 浮游三角胞(数学啊 )

    题目链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2245 Time Limi ...

  6. PageHeap,调试Heap问题的工具

    <Windows用户态程序高效排错>第二章主要介绍用户态调试相关的知识和工具.本文主要讲了PageHeap,调试Heap问题的工具. AD:51CTO学院:IT精品课程在线看! 2.4.2 ...

  7. HUD 1501 Zipper(记忆化 or DP)

    Problem Description Given three strings, you are to determine whether the third string can be formed ...

  8. moodle中文API之表单API

    Form API 表单API 文件夹 1.概述 2.亮点 3.使用方法 4.表单元素 4.1 基本表单元素 4.2 定制表单元素 5.经常使用函数 5.1  add_action_buttons($c ...

  9. RealThinClient学习(一)

    服务端代码: unit RtcHttpServer; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, ...

  10. Delphi VMT的前世今生(研究一下D7的VMT表结构)

    主要是TObject那些虚函数,到底放在了哪里?