J2EE应用性能问题的常用优化项目

JavaEE基于Web的简易计算器项目源码解析 在开始JavaEE开发之前,需要进行详细的项目规划和需求分析。这包括项目的目标、功能、性能要求以及预估的时间、成本等。接下来是搭建开发环境,包括安装Java开发工具包(JDK)、集成开发环境(IDE)如IntelliJ IDEA或Eclipse,以及配置数据库和应用服务器,如MySQL和Tomcat。Struts2框架的核心组件包括Action、Interceptor(拦截器)、Result(结果类型)和ValueStack(值栈)。 阅读详情
导读:
  性能问题的最明显表现是网页的响应时间变慢。在J2EE系统中,经常体现有下面更为基本的症状:
  
  应用服务器资源的使用情况
  
  JVM堆的使用情况
  
  系统资源的使用情况
  
  数据库资源的使用情况
  
  网络活动
  
  这些现象表明J2EE应用依赖很多外部资源,并且是运行在一个层次化的执行模式的环境中:
  
  
  
  由于Java虚拟机和应用服务器掩盖了操作系统和硬件的特性,所以在设计软件系统时,架构工程师更应该深刻理解整个操作环境。
  
  在设计软件系统时,架构工程师应把性能和可扩展性放在首位,然后开始寻找容易解决的问题,反应时间缓慢通常的原因是访问数据库效率低和过多地调用远程对象和方法。接下来,架构工程师可继续寻找不明显的原因,例如算法的累积影响和不必要的开销。
  
  现在市场上的各个J2EE应用服务器有很多配置项目。这里只简单介绍一些常见的性能优化配置项目。
  
  很多应用服务器都有一些与J2EE规范有关的操作系统配置项目或非标准的特性,这可以提高系统性能。应该化时间来理解这些性能配置。
  
   Java虚拟机堆和垃圾回收设置
  任何Java应用的性能调整基础都涉及到堆的大小和垃圾回收设置。(这里主要讨论Sun HotSpor JVM).
  
  堆可分为三代,年轻的(新的),年老的和持久的。Hotspot JVM的内存基本配置包括最大堆大小,初始堆大小和年轻一代堆的大小。当配置最大堆大小时可参考下面一些指导:
  
  最大大小应小于物理内存,避免虚存的页面调度。
  
  需要减去其他进程使用的内存
  
  在负载测试时进行优化
  
  注意不要将最大堆大小设置得过大。堆越大,内存中保存的对象越多。内存中对象越多,回收过程时间越长。
  
  配置初试堆大小的一般性策略包括:
  
  将初始大小设置为最大堆大小
  
  将初始大小设置为最大堆大小的1/4到1/2
  
  对于年轻一代堆大小,Sun 推荐是设置为最大堆大小的1/3。
  
  也可以选择不同的垃圾回收算法。首先是增量垃圾回收。该算法的意思是减少单个对象回收停顿时间,这样的结果是整体回收性能的下降。该算法将相互引用的对象分组,然后尝试按组回收。尝试回收的部分越小,回收处理的时间往往会越少。
  
  1.4.1版的HotSpot JVM增加了两个垃圾回收算法:并行算法和并发算法。
  
  在年轻一代堆中实现了并行算法。在多处理器的机器上,这种回收算法使用了多线程来提高性能。虽然这个算法会暂停所有的应用线程,但是由于利用了多个CPU使得回收时间非常快。在年轻一代堆中,该算法显著地减少了回收带来的停顿。
  
  在年老一代堆中实现了并发算法。在应用中最大限度地执行并发。回收过程分为4个阶段,覆盖了可回收对象的标记和清除操作。前两个过程会暂停应用线程,后两阶段可与应用并发执行。并发垃圾回收算法的"最大限度并发"特点可以使JVM利用更大的堆和多个CPU。因此应关注由于采用缺省的mark-compact(标记-压缩)和stop-the-world(停顿所有处理)等垃圾回收算法所带来的延迟和吞吐量问题。
  
   处理线程
  J2EE应用服务器是多线程的应用。应用服务器的线程是一种资源池,处理请求和和应用服务器的内部功能等任务共享这些资源。
  
  很多应用服务器允许为特定的任务或应用配置不同大小的线程池。通常需要增加这些线程池的大小以满足应用负载的需要。
  
  架构工程师应该避免将线程池大小设置过大,这是因为会增加上下文交换的次数,从而降低应用的性能。线程池的大小通常应该能最大利用机器上的CPU,同时又不能使CPU过载。
  
   EJB配置项目
  在应用服务器中,很多不同类型的EJB是以资源池的方式实现的。通常这些池大小和初始Bean的数量会明显影响应用的性能。
  
  架构工程师应该避免将这些池大小设置的过大,这样会导致不必要地消耗JVM和操作系统内存。另外,将初始Bean数量设置过高会使得应用服务器的启动时间长的难以接受。
  
  在应用服务器中,缓存很多不同类型的EJB。缓存大小和超时设置通常也会对应用性能带来显著影响。
  
  架构工程师应该避免将缓寸大小设置过大,这同样会不必要地消耗大量JVM和操作系统内存。此外,应避免设置过长的超时--例如当EJB不用时,仍被缓存---,这也会导致不必要地消耗大量内存。
  
   数据库配置项目
  J2EE规范要求应用服务器厂商必须提供数据库连接资源池功能。通常增加数据库连接池的大小会提高性能。架构工程师应该考虑不同类型的SQL操作(例如事务型和批处理型)应使用不同的连接池。如果一个消息Bean执行批处理操作,那么应该为此另创建一个连接池,而不要与事务型操作使用同一个连接池。
  
  很多J2EE应用服务器提供了Prepared Statement 的缓存功能。创建Prepared Statement是很耗费资源的。在事务型的J2EE应用中通常执行很多同样的SQL语句,只是参数不同而已。所以在应用中应发挥数据库配置项目的作用,尽量使用Prepared Statement。

本文转自
http://www.builder.com.cn/2007/0901/483676.shtml
J2EE 应用系统调优 介绍了J2EE应用的调优手段和开发过程中应该注意的问题。 立即下载

相关推荐

J2EE性能优化--服务器

这里我们使用举例来说明为什么要学习Java虚拟机,其实这个问题就和为什么要学习数据结构和算法是一个道理,工欲善其事,必先利其器。曾经的我经常害怕处理内存溢出的问题,因为不知道他为什么会出现这个问题,当我在看了这本书以后明白了垃圾回收算法,以及JVM是如何帮助我们处理GC的

J2EE系统优化

1.       j2EE系统访问速度慢.从哪些方面可以优化 J2EE性能的优化包括很多方面的,要达到一个性能优良的系统,除了关注代码之外,还应该根据系统实际的运行情况,从服务器软硬件环境、集群技术、系统构架设计、系统部署环境、数据结构、算法设计等方面综合考虑 2.       J2EE访问速度慢,怎么样优化 1 使用缓冲标记   对于代码逻辑复杂的页面,利用缓冲标记提高性能

a382064640的专栏 975

J2EE性能优化

J2EE性能优化

J2EE程序的性能优化技巧

 应用J2EE平台开发的系统的性能是系统使用者和开发者都关注的问题,本文从服务器端编程时应注意的几个方面讨论代码对性能的影响,并总结一些解决的建议。  关键词:性能,Java,J2EE,EJB,Servlet,JDBC  一、概要  Java 2 Platform, Enterprise Edition (J2EE)是当前很多商业应用系统使用的开发平台,该技术提供了一个基于组件的方法来设计、开发、

holycup的专栏 6034

S-function入门及案例详解(1)——S-function基础介绍及基本案例

本专题将用三篇文章对S-function进行介绍及其案例详解。欢迎关注~ 目录一、S-Function简介二、详解sfuntmpl函数2.1 sfuntmpl函数介绍2.2 mdlInitializeSizes函数2.3 mdlDerivatives函数2.4 mdlUpdate函数2.5 mdlOutputs函数2.6 mdlGetTimeOfNextVarHit函数2.7 mdlTerminate函数三、案例1——对波形的幅值进行放大3.1 案例分析3.2 案例详解3.3 输出波形四、案例2——对波形的

Wendy的博客 7万+

AI驱动视频剪辑自动化:cutcli命令行工具重塑工作流

视频剪辑自动化是提升内容生产效率的关键技术,其核心原理在于通过程序化指令替代手动操作,将创意执行过程代码化。这项技术的价值在于能够将创作者从重复性劳动中解放,实现批量化、标准化的视频内容生产,尤其适用于社交媒体运营、产品宣传等高频产出场景。通过封装专业软件(如剪映/CapCut)的底层草稿格式,自动化工具在保证工业级渲染质量的同时,提供了可编辑的中间态,为AI智能体(Agent)与生产工具的结合提供了清晰接口。本文以cutcli为例,深入探讨了如何通过命令行工具和AI助手,构建从自然语言指令到可编辑视频草稿

weixin_27210125的博客 1065

J2EE系统优化的几点体会

J2EE系统优化的几点体会(一、对象)说到系统优化,是一个比较复杂的问题,涉及到软件的各个方面:需求、模块划分、数据库设计、程序编码以及一些特殊的优化方法如缓存技术等。而不同的应用又有其特殊的优化策略和技术。同时优化是贯穿系统从需求到实现再到维护的各个阶段的一项活动,而在各个阶段又有其不同的着眼点和具体方法。本文立足于具体的J2EE项目实践,结合一些已有的优化条例,提出自己的一些体会,也算

蒋剑锋的专栏-java技术 1016

linux下wayland协议修改键盘映射

linux下wayland协议,修改键盘映射,实验环境是Ubuntu24,其他wayland协议窗口应该也是可以的。

qq_15027967的博客 1068

J2EE应用性能问题的常用优化项目 (转载)

/** *Mar 7, 2007 * Zhou JianGuo * 小白 * 中国电信上海技术研究院 * MSN:zhuojianguo_leo@hotmail.com */ 一 知识管理概要1、什么是知识管理        性能问题的最明显表现是网页的响应时间变慢。在J2EE系统中,经常体现有下面更为基本的症状:应用服务器资源的使用情况 JVM堆的使用情况

474

TDSQL-单机安装

根据腾讯云官方要求,TDSQL安装至少需要三台机器。本人想要学习TDSQL但是没有足够的机器资源,经过仔细分析研究TDSQL安装过程,尝试发现单台机器也可以成功安装TDSQL,现将本人单台机器安装TDSQL的过程以及安装过程中遇到的问题在此分享。具体安装过程可参考腾讯官方文档,本文仅分享与官方文档不一致的步骤。

u012607648的博客 6810

SAP物料分类账实战:从配置到月结的关键步骤(基于S/4HANA1909)

本文详细解析了在SAP S/4HANA 1909系统中,物料分类账从基础配置到月结操作的全流程。作为成本核算的核心,物料分类账通过多级价格确定实现实际成本核算,关键步骤包括激活物料分类账、配置自动过账科目(OBYC)、运行CKMLCP进行差异分摊与结算。文章旨在帮助财务与成本会计人员确保成本差异的准确归集与分摊,顺利完成月结。

weixin_28314575的博客 197

J2EE应用性能问题的常用优化

转载于Cnbie]性能问题的最明显表现是网页的响应时间变慢。在J2EE系统中,经常体现有下面更为基本的症状:应用服务器资源的使用情况JVM堆的使用情况系统资源的使用情况数据库资源的使用情况网络活动 JAVA手机网[www.cnjm.net]这些现象表明J2EE应用依赖很多外部资源,并且是运行在一个层次化的执行模式的环境中: JAVA手机网[www.cnjm.net]由于Java虚拟

303

RoCE Overlay

1. RoCE over vxlan 配置vxlan封装的RoCE流量,可以在PF switchdev模式下利用ovs bridge,或直接设置tc rules。下面将基于一对NIC互联的服务器介绍两种方式的使用,并分析封装后的数据包结构。 1.1. 基本配置 - VF与switchdev 首先创建VF,并为两个host设置PF的switchdev模式。使用ovs bridge或tc rules,...

sunshuying1010的博客 3064

Quest JProbe最佳实践指南--------分析Weblogic J2EE应用性能

 (铸锐数码-编译)1.        介绍在Java的广泛应用中,一个关键驱动因素是由于使用标准类库和应用框架从而提高了生产效率。通过减少必要的设计,实现和调试等软件开发任务,Java在各种平台之间极大地改善了集成性和互操作性;其它的开发环境都不能提供象Java那样的强大功能。实际上,没有一个环境象J2EE那样具有明显的基于框架开发的优点,J2EE能够快速地构建可扩展,分布式的安全企

wangyi1997的专栏 2069

【二 Deepseek+Coze案例】【 2.2 Coze + Deepseek 实现小红书爆款笔记:打造专属Agent智能体】

摘要 本文介绍了如何利用Coze平台和Deepseek模型构建自动化Agent智能体,用于生成和优化小红书爆款笔记。文章首先分析了爆款笔记的核心特征,包括精准定位、吸引标题、实用内容、精美排版和热门标签。随后提出Agent智能体的功能需求,涵盖热点追踪、内容生成与优化、数据分析及自动发布等模块。在技术实现上,详细阐述了从环境配置、数据采集到内容生成与优化的全流程,并提供了Python代码示例,展示如何调用Coze函数获取热点数据及竞品笔记。该方案通过智能化的内容创作与运营策略,帮助用户高效打造高曝光的小红书

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 2298

VisionPro 机器视觉案例 之 彩色保险丝个数统计

CogColorSegmenterTool CogColorMatchTool

机器视觉李小白的博客 2353

J2EE系统应用性能问题解决的通用方法

应用服务器资源的使用情况 JVM堆的使用情况 系统资源的使用情况 数据库资源的使用情况 网络活动 这些现象表明J2EE应用依赖很多外部资源,并且是运行在一个层次化的执行模式的环境中: 由于Java虚拟机和应用服务器掩盖了操作系统和硬件的特性,所以在设

黄三秒猪头宝宝的专栏 419

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

《J2EE应用性能分析与优化》课程大纲

《J2EE应用性能分析与优化》课程大纲http://gdtesting.com/product.php?id=89

软件质量优化 1937

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

在生产中监测和优化J2EE应用性能

http://www.innovatedigital.com/htm_speek/Index_speek_28.shtml 在生产中监测和优化J2EE应用性能   1. 介绍         企业的业务依赖于J2EE应用服务器以提供高可靠性的关键业务应用。这些应用包括自助分类服务, 实时证券管理,和24 x 7 客户服务。 如果这些系统一旦不可用, 将带来客户和资金方面的损失。       J2E...

apachi117 202

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

J2EE应用性能调优(目录)

J2EE应用性能调优(目录)   性能调优之零:前言   性能调优之一 :性能参数指标 性能调优之二 :性能调优方法 性能调优之三 :硬件网络层面调优 性能调优之四 :操作系统层面调优 性能调优之五:J2EE容器层面调优 性能调优之六:数据库层面调优 性能调优之七:J2EE后台程序调优 性能调优之八:J2EE前台程序调优 性能调优之九:JVM...

我的IT博客 169

解决J2EE系统应用性能问题常用方法

  在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java专业知识,广州疯狂java培训为你讲解;   性能问题的最明显表现是网页的响应时间变慢。在J2EE系统中,经常体现有下面更为基本的症状:   应用服务器资源的使用情况   JVM堆的使用情况   系统资源的使用情况   数据库资源的使用情况   网络活动 ...

weixin_30602505的博客 120

JavaEE项目中,你准备如何解决高并发问题?

1 .从最基础的地方做起,优化我们写的代码,减少必要的资源浪费。 a、避免频繁的使用new对象,对于整个应用只需要存在一个实例的类,我们可以使用单例模式。对于String连接操作,使用StringBuffer或StringBuilder,对于工具类可以通过静态方法来访问。 b、避免使用错误的方式,尽量不用instanceof做条件判断。使用java中效率高的类,比如ArrayList比Vector性能好。 html静态化 我们通过一个链接地址访问,通过这个链接地址,服务器对应的模块处理这个请求,转到对应

京北游戏官方 2万+
上一篇: 构建高性能J2EE应用的5种策略
下一篇: Java数据库连接驱动程序类型
enjoyjavaee
博客等级 码龄20年 6粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值