高吞吐量系统设计优化建议-java开发java经验技巧

高吞吐量系统设计优化建议-java开发java经验技巧

ID:30944117

大小:81.00 KB

页数:14页

时间:2019-01-04

高吞吐量系统设计优化建议-java开发java经验技巧_第1页
高吞吐量系统设计优化建议-java开发java经验技巧_第2页
高吞吐量系统设计优化建议-java开发java经验技巧_第3页
高吞吐量系统设计优化建议-java开发java经验技巧_第4页
高吞吐量系统设计优化建议-java开发java经验技巧_第5页
资源描述:

《高吞吐量系统设计优化建议-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、高吞吐量系统设计优化建议-编程开发技术高吞吐量系统设计优化建议原文出处:IBM・周明耀高吞吐量系统举一个例子,我们做项目需要安排计划,每一个模块可以由多人同时并行做多项任务,也可以一个人或者多个人串行工作,但始终会有一条关键路径,这条路径就是项目的工期。系统一次调用的响应吋间跟项目计划一样,也有一条关键路径,这个关键路径是就是系统影响时间。关键路径由CPU运算、10、外部系统响应等等组成。对于一个系统的用户来说,从用户点击一个按钮、链接或发岀一条指令开始,到系统把结果以用户希望的形式展现出来为终止,整个过程所消耗的时间是用户对这个软件性能的直观印象,也就是我们所说的响应时间。当响

2、应时间较短时,用户体验是很好的,当然用户体验的响应时间包括个人主观因索和客观响应时间。在设计软件时,我们就需要考虑到如何更好地结合这两部分达到用户最佳的体验。如:用户在大数据量查询时,我们可以将先捉取岀来的数据展示给用户,在用户看的过程中继续进行数据检索,这时用户并不知道我们后台在做什么,用户关注的是用户操作的响应吋间。我们经常说的一个系统吞吐量,通常曲QPS(TPS)、并发数两个因索决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等

3、其它消耗导致系统性能下降,决定系统响应吋间要素。缓冲(Buffer)缓冲区是一块特定的内存区域,开辟缓冲区的目的是通过缓解应用程序上下层Z间的性能差异,提高系统的性能。在日常生活中,缓冲的一个典型应用是漏斗。缓冲可以协调上层组件和下层组件的性能差,当上层组件性能优于下层组件吋,可以冇效减少上层组件对下层组件的等待时间。基于这样的结构,上层应用组件不需要等待卜•层组件真实地接受全部数据,即可返回操作,加快了上层组件的处理速度,从而捉升系统整体性能。使用BufferedWriter进行缓冲BuffcrcdWritcr就是一个缓冲区用法,一般來说,缓冲区不宜过小,过小的缓冲区无法起到真

4、正的缓冲作用,缓冲区也不宜过大,过大的缓冲区会浪费系统内存,增加GC负担。尽量在I/O组件内加入缓冲区,可以提高性能。一个缓冲区例子代码如清单1所示。清单1.加上缓冲区之前示例代码importjava,awt・Color;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Image;importjavax.swing.JApplct;publicclassNoBufferMovingCirc1eextendsJAppletimplementsRunnable{ImagescreenTmage=null

5、;Threadthread;intx=5;intmove=1;publicvoidinit(){serecnlmage二crcatcImagc(230,160);}publicvoidstart(){if(thread二二null){thread二newThread(this);thread,start();}}©Overridepublicvoidrun(){//TODOAuto-generatedmethodstubtry{System,out.println(x);whilc(true){x+二move;System・out.println(x);if((x>105)

6、

7、(

8、x<5)){move*二一1;ijrepaint();Thread・sleep(lO);}}catch(Exceptione){publicvoiddrawCirc1e(Graphicsgc){Graphics2Dg二(Graphics2D)gc;g.setColor(Color.GREEN);g.fillRcct(O,0,200,100);g.setColor(Color,red);g.fillOvaKx,5,90,90);}publicvoidpaint(Graphicsg){g.setColor(Color,white);g.fillRect(0,0,200,100);dr

9、awCircle(g);程序可以完成红球的左右平移,但是效果较养,因为每次的界面刷新都涉及图片的重新绘制,这较为费时,因此,I田i面的抖动和白光效果明显。为了得到更优质的显示效果,可以为它加上缓冲区。代码如清单2所示。清单2.加上缓冲区之后示例代码importjava.awt.Color;importjava.awt.Graphics;publicclassBuffcrMovingCirclcextendsNoBuffcrMovingCirclc{GraphicsdoubleBu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。