垂直层(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. 博弈论之Nim

    博弈论(一):Nim游戏 重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算. Nim游戏是博 ...

  2. Oracle Tablespace Transportation

    前提:进行表空间传输需要用户有SYSDBA的系统权限,被移动的表空间是自包含的表空间,不应有依赖于表空间外部对象的对象存在.确定是否自包含可使用系统包DBMS_TTS中的TRANSPORT_SET_C ...

  3. Hacker News网站的文章排名算法工作原理

    In this post I'll try to explain how Hacker News ranking algorithm works and how you can reuse it in ...

  4. ExtJS拖拽效果

    ExtJS拖拽效果 <html> <head> <title>hello</title> <meta http-equiv="conte ...

  5. 深度RAMOS,把操作系统全部安装在内存上

     你看下深度RAMOS就知道了  RAMOS+音速启动+绿色软件+云端  很爽 http://www.shenduwin7.com/jiaocheng/52.html

  6. 使用ThinkPHP+Uploadify实现图片上传功能

    首先,将下载的Uploadify压缩包解压放到公共文件夹内.实现代码如下: 前台html部分: <script src="/uploadify/jquery.min.js" ...

  7. java中subString、split、stringTokenizer三种截取字符串方法的性能比较(转)

    最近在阅读java.lang下的源码,读到String时,突然想起面试的时候曾经被人问过:都知道在大数据量情况下,使用String的split截取字符串效率很低,有想过用其他的方法替代吗?用什么替代? ...

  8. 第二章 IoC Setter注入

    Setter注入又称为属性注入.是通过属性的setXXX()方法来注入Bean的属性值或依赖对象.由于Setter注入具有可选择性和灵活性高的优点,因此Setter注入是实际应用中最常用的注入方式. ...

  9. Struts2获取演示示例教程

    回想Struts2的使用过程,网上搜的教程多多少少都会有点问题.又一次记录下创建过程,方便查阅. 1.下载Struts2的jar包 下载地址:http://archive.apache.org/dis ...

  10. ASP.NET Aries 开发框架

    开源:ASP.NET Aries 开发框架 前言: 随着岁月的推进,不知不觉已在.NET这领域上战斗了十年了. 青春还没来得急好好感受,却已是步入健忘之秋的老人一枚了. 趁着还有点记忆,得赶紧把硬盘里 ...