版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java高性能系统常见设计与优化 嵌入式软件事业部7/23/2022iSoftStone Information Service Corporation概述Java VM应用程序通信数据库7/23/2022iSoftStone Information Service Corporation高性能系统典型体系结构32006 iSoftStone Information Service Corporation. All rights reserved.优化原则内存访问比硬盘I/O访问快万倍内存访问比网络I/O访问快百倍网络I/O访问比硬盘I/O访问快百倍性能基准首先降低硬盘I/O访问次数,如硬盘数
2、据库访问其次降低进程间通信I/O次数,尤其是远程进程间通信I/O次数,如JDBC数据库访问降低CPU和内存等资源的占用优化原则42006 iSoftStone Information Service Corporation. All rights reserved.概述Java VM应用程序通信数据库7/23/2022iSoftStone Information Service CorporationJVM优化优先使用BEA JRockit,而不是使用SUN JVM如果使用SUN JVM,使用-server即Server版的JVM根据Cache需要,可调整JVM的Heap Size,如-Xmx
3、2048m,否则很可能出现Out of Memory异常。另外,Max Heap Size最好不要超过物理内存的1/2其他JVM选项请参见产品手册,可输入java help查看具体选项62006 iSoftStone Information Service Corporation. All rights reserved.概述Java VM应用程序通信数据库7/23/2022iSoftStone Information Service Corporation数据库设计数据模型设计应根据性能权衡降低表连接数量,一般每个SQL中最好不要超过3个表的连接,否则性能下降很大使用DBMS的Partiti
4、on特性加快大数据量表的SQL操作性能,详细信息可参见Oracle Partition部分文档根据SQL建立索引,索引列与SQL中的列要有一定的对应关系,详细信息可参见Oracle 性能优化部分文档对于统计查询,可考虑使用物化视图(Materialized Views)82006 iSoftStone Information Service Corporation. All rights reserved.数据库访问使用JDBC连接池,物理连接建立对性能影响很大,对于并发很高的应用,可调高JDBC连接池的大小,如设为192尽量降低对数据库的访问次数,否则性能影响很大对于写操作,尽量使用批量(b
5、atch)写的方式,但每个事务中的SQL不要超过500;对于查询请使用预取(PreFetch)使用prepare statement,避免DBMS对SQL重复的解析与编译SQL不要太复杂,尤其是连表查询的表最好不要超过3个Where in的列表最好不要超过500个92006 iSoftStone Information Service Corporation. All rights reserved.概述Java VM应用程序通信数据库7/23/2022iSoftStone Information Service Corporation通信设计一使用硬件负载均衡器提高系统的并发用户数支持(连接
6、复用)使用软件负载均衡器提高系统的并发用户数支持(连接复用),如Apache,请参见Tomcat、JBOSS等Apache的AJP支持部分。单节点4CPU的应用服务器可支持10,000并发HTTP用户112006 iSoftStone Information Service Corporation. All rights reserved.通信设计二请尽量使用异步通信,可使用ActiveMQ消息中间件如果基于Socket开发,请使用异步I/O,比同步I/O一般快2倍,Apache即基于异步I/O实现远程通信可考虑RMI,性能往往比基于XML较好如果是基于XML的消息包,请使用个SAX或StAX
7、接口,请不要使用DOM如果使用SOAP,请使用开源库XFire,一般来说其性能是Apache Axis的3倍以上,并MyEclipse直接支持XFire;请尽量降低远程进程间通信次数在降低远程进程间通信次数的同时降低消息包的大小122006 iSoftStone Information Service Corporation. All rights reserved.概述Java VM应用程序通信数据库7/23/2022iSoftStone Information Service Corporation应用程序优化一如果需要使用线程池,请使用JDK1.5的java.util.concurren
8、t包中的ThreadPoolExecutor 多线程同步也可使用java.util.concurrent.locks和java.util.concurrent.atomic中的封装如果并发的定时调度任务很多,请使用开源库Quartz,可支持上万个定时任务使用Cache大幅降低I/O访问次数,可基于开源库OSCache或JDK1.5的java.util.concurrent包中的ConcurrentHashMap来封装对于高级的大数据量实时处理,可使用Oracle TimesTen内存数据库技术142006 iSoftStone Information Service Corporation. All rights reserved.应用程序优化二中间层请尽量是stateless方式,而不是stateful方式,降低session状态数据的cluster复制需要熟悉java.util包中的各种数据结构的适用场景,如HashMap适用于单记录的快速操作等避免使用Entity EJB和stateful EJB尽量避免分布式事务,而是使用本地事务尽量降低负载均衡时节点间的数据复制152006 iSo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业营销管理的11项原则
- 《材料加工检测技术》教学大纲
- 教案第一课神奇的货币
- 玉溪师范学院《田径》2023-2024学年第一学期期末试卷
- 经济贸易毕业论文:中国外贸竞争力探究
- 玉溪师范学院《普通话与教师口语》2021-2022学年第一学期期末试卷
- 会计从业资格考试财经法规教案
- 建筑公司规章制度范本
- 销售部门年终工作总结课件模板
- 东南亚运动户外电商行业市场洞察
- 2024灌区智能控制闸门系统技术规程
- 铁塔基站维护安全培训课件
- 电车拆解行业分析
- 银行诉讼时效培训课件
- 职业生涯规划书助产
- 《从九一八事变到西安事变》【精准教学】
- 音乐行业2024年音乐创作趋势分析
- 分数阶微积分简介(大三下)
- 电商物流行业培训资料
- 美术新课程标准
- 乘坐公共交通工具的安全常识
评论
0/150
提交评论