版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025/10/28iSoftStoneInformationServiceCorporationJava高性能系统常见设计与优化
嵌入式软件事业部2025/10/28iSoftStoneInformationServiceCorporation概述JavaVM应用程序通信数据库©2006iSoftStoneInformationServiceCorporation.Allrightsreserved.3高性能系统典型体系结构©2006iSoftStoneInformationServiceCorporation.Allrightsreserved.4优化原则内存访问比硬盘I/O访问快万倍内存访问比网络I/O访问快百倍网络I/O访问比硬盘I/O访问快百倍性能基准首先降低硬盘I/O访问次数,如硬盘数据库访问其次降低进程间通信I/O次数,尤其是远程进程间通信I/O次数,如JDBC数据库访问降低CPU和内存等资源的占用优化原则2025/10/28iSoftStoneInformationServiceCorporation概述JavaVM应用程序通信数据库©2006iSoftStoneInformationServiceCorporation.Allrightsreserved.6JVM优化优先使用BEAJRockit,而不是使用SUNJVM如果使用SUNJVM,使用-server即Server版的JVM根据Cache需要,可调整JVM的HeapSize,如-Xmx2048m,否则很可能出现OutofMemory异常。另外,MaxHeapSize最好不要超过物理内存的1/2其他JVM选项请参见产品手册,可输入java–help查看具体选项2025/10/28iSoftStoneInformationServiceCorporation概述JavaVM应用程序通信数据库©2006iSoftStoneInformationServiceCorporation.Allrightsreserved.8数据库设计数据模型设计应根据性能权衡降低表连接数量,一般每个SQL中最好不要超过3个表的连接,否则性能下降很大使用DBMS的Partition特性加快大数据量表的SQL操作性能,详细信息可参见OraclePartition部分文档根据SQL建立索引,索引列与SQL中的列要有一定的对应关系,详细信息可参见Oracle性能优化部分文档对于统计查询,可考虑使用物化视图(MaterializedViews)©2006iSoftStoneInformationServiceCorporation.Allrightsreserved.9数据库访问使用JDBC连接池,物理连接建立对性能影响很大,对于并发很高的应用,可调高JDBC连接池的大小,如设为192尽量降低对数据库的访问次数,否则性能影响很大对于写操作,尽量使用批量(batch)写的方式,但每个事务中的SQL不要超过500;对于查询请使用预取(PreFetch)使用preparestatement,避免DBMS对SQL重复的解析与编译SQL不要太复杂,尤其是连表查询的表最好不要超过3个Wherein的列表最好不要超过500个2025/10/28iSoftStoneInformationServiceCorporation概述JavaVM应用程序通信数据库©2006iSoftStoneInformationServiceCorporation.Allrightsreserved.11通信设计一使用硬件负载均衡器提高系统的并发用户数支持(连接复用)使用软件负载均衡器提高系统的并发用户数支持(连接复用),如Apache,请参见Tomcat、JBOSS等Apache的AJP支持部分。单节点4CPU的应用服务器可支持10,000并发HTTP用户©2006iSoftStoneInformationServiceCorporation.Allrightsreserved.12通信设计二请尽量使用异步通信,可使用ActiveMQ消息中间件如果基于Socket开发,请使用异步I/O,比同步I/O一般快2倍,Apache即基于异步I/O实现远程通信可考虑RMI,性能往往比基于XML较好如果是基于XML的消息包,请使用个SAX或StAX接口,请不要使用DOM如果使用SOAP,请使用开源库XFire,一般来说其性能是ApacheAxis的3倍以上,并MyEclipse直接支持XFire;请尽量降低远程进程间通信次数在降低远程进程间通信次数的同时降低消息包的大小2025/10/28iSoftStoneInformationServiceCorporation概述JavaVM应用程序通信数据库©2006iSoftStoneInformationServiceCorporation.Allrightsreserved.14应用程序优化一如果需要使用线程池,请使用JDK1.5的java.util.concurrent包中的ThreadPoolExecutor多线程同步也可使用java.util.concurrent.locks和java.util.concurrent.atomic中的封装如果并发的定时调度任务很多,请使用开源库Quartz,可支持上万个定时任务使用Cache大幅降低I/O访问次数,可基于开源库OSCache或JDK1.5的java.util.concurrent包中的ConcurrentHashMap来封装对于高级的大数据量实时处理,可使用OracleTimesTen内存数据库技术©2006iSoftStoneInformationServiceCorporation.Allrightsreserved.15应用程序优化二中间层请尽量是stateless方式,而不是stateful方式,降低session状态数据的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石家庄市新华区2027届数学四上期末学业水平测试试题含解析
- 河南省郑州市金水区2027届数学六上期末联考试题含解析
- 辽宁省大连市中山区2026年数学三年级下学期期中监测试题(含解析)
- 江西省赣州市全南县2027届四上数学期末达标检测模拟试题含解析
- 2026年九团幼儿园招聘(8人)备考题库附参考答案详解(轻巧夺冠)
- 成都航空职业技术大学2026年公开招聘助学助管员与科研助理(第三批)模拟试卷及答案详解(各地真题)
- 2026山东滨州市阳信县洋湖乡城镇公益性岗位招聘3人笔试题库【重点】附答案详解
- 2026年大连市数据局公开招聘雇员6人备考题库带答案详解(培优B卷)
- 2026南京理工大学招聘科研助理3人参考题库附完整答案详解【全优】
- 2026四川雅安市经济和信息化局直属事业单位考核招聘3人备考题库含答案详解【培优A卷】
- 2026年高一英语小测试题及答案
- 2026河北保定数字城市投资发展集团有限公司公开招聘工作人员6人笔试备考题库及答案详解
- 2026-2030中国空分设备制造行业经营现状调研及发展态势展望报告
- 2026-2030中国天然冰片行业未来发展预测及投资前景分析报告
- 2026年汽车驾驶员高级技师基本理论知识考试题含答案
- JG 5091-1997钢丝绳柱形压制接头
- 中医疼痛方面课件教案
- (新版)中国心理卫生协会心理咨询师考试复习题库(浓缩400题)
- 四川省水电集团笔试题库
- 可持续棕榈油圆桌倡议组织RSPO供应链认证管理手册及程序文件
- 古希腊文明智慧树知到期末考试答案章节答案2024年复旦大学
评论
0/150
提交评论