最近在看《java程序性能优化》这本书,作者写的非常好,没有看过的同学,建议大家可以去买来看看。由于我也是是刚开始看,所以看完后在此做个回顾。这里主要介绍3种系统性能优化的方法:增加缓冲区、使用缓存以及负载均衡。至于设计模式相关的就不在这里介绍了。
1、缓冲区(buffer)
缓冲区是一块特定的内存区域,开辟缓冲区的目的是通过缓解应用程序上下层之间的性能差异,提高系统的性能。比如:将茶壶(上层系统)中的水倒入一个水瓶子(下层系统)中,茶壶的出水速度可以很快,但水瓶的瓶口很细,此时就需要加入一个漏斗(相当于缓冲器),将水壶中的水先倒入漏斗中,漏斗中的水在慢慢流到水瓶内,由于茶壶出水比较快,待茶壶中的水全部倒入漏斗中时,相当于上层系统的操作完成了,只要等待漏斗中的水全部流入水瓶中即可。犹如将内存中的数据写入硬盘一样,内存写出数据的速度很快,而写入数据到硬盘上的速度相对比较慢,所以中间需要加入一个缓冲区,将内存中的数据线写到缓冲区中,然后再将缓冲区中的数据写入硬盘中,内存中的数据全部写到缓冲区后,内存就可以去进行其他的操作了,而不需要再等缓冲区的数据全部写入到硬盘中,待缓冲区中的数据全部写入到硬盘中后,缓冲区的数据就清空了。内存写数据到硬盘就借助一个缓冲区来协调上层组件和下层组件的性能差。其好处是上层应用组件不需要等待下层组件真实地接受全部数据,即可返回操作,加快了上层组件的处理速度,从而提升系统整体性能。
2、缓存(cache)
缓存是一块为提升系统性能儿开辟的内存空间,主要作用是暂存数据处理结果,并提供下次访问使用。缓存可以保存一些来之不易的数据或者计算结果,当需要再次使用这些数据的时候,可以从缓存中低成本地获取,而不需要再占用宝贵的系统资源。大家用兴趣可以去了解一下ehcache、oscache、jbosscache等缓存框架,在此不做深入探讨。
3、负载均衡
对大型应用来说,系统负载可能非常重要,以网站为例,如果并发数很多,则单台计算机就无法承受,此时,为保证应用程序的服务质量,需要使用多台计算机协同工作,将系统负载尽可能均匀地分配到各个计算机节点上。
3.1、tomact集群:
使用apache服务器作为负载分配器,将请求转向各个tomcat服务器,从而实现负载均衡。tomcat集群有两种session共享模式:黏性session模式和复杂session模式。黏性session模式:就是所有session被平均分配到各个tomcat节点上,以实现负载均衡,但如果某个tomcat宕机,则该tomcat上的session信息将丢失,所有不建议使用改session模式。复杂session模式:将使得所有session在所有tomcat节点上保持一致,如果某台tomcat节点宕机了,则该tomcat节点上session信息仍然在其他tomcat节点上,从而不必担心丢失客户session问题。在次推荐一个专门用于分布式缓存的框架Terracotta,有兴趣的同学可以去了解一下,在此就不介绍了。
分享到:
相关推荐
【标题】:“基于WEB的大型Oracle应用系统性能优化方法研究” 【描述】:该文档主要探讨了一个基于WEB的Oracle应用系统性能优化的实践案例,针对一个用于绩效管理的系统进行了性能提升,涉及到SQL优化、AJAX技术...
Linux系统性能优化是确保系统高效稳定运行的重要手段,涉及多个层面的考量和操作。在进行性能优化之前,我们需要了解影响Linux系统性能的各种因素,并且掌握一系列优化工具与方法。 一、影响Linux性能的各种因素 1...
【Android性能优化】是...综上,Android性能优化是一个系统性工程,需要综合考虑用户体验、系统资源利用、应用稳定性和效率等多个方面,通过对各个细节的深入理解和优化,才能打造出高效、稳定且用户友好的应用。
"系统性能优化解决方案" 系统性能优化解决方案是一种旨在解决系统性能瓶颈、提高系统可用性和可靠性的解决方案。该解决方案涵盖了多个方面,包括缓存优化、程序容错优化、部分项目拆分、基础平台组件功能完善等。 ...
分布式文件系统GlusterFS性能优化研究中涉及到的关键知识点包括分布式文件系统的基本概念、GlusterFS的架构特点、性能优化策略以及优化测试和实验平台的搭建和分析方法。 首先,分布式文件系统是一种把数据存储在多...
综上所述,论文所提出的基于机器学习的动态分区并行文件系统性能优化方法,在理论和实践上都展示出了其先进性。它为并行文件系统的性能优化提供了一个全新的视角,即将机器学习理论与并行文件系统的设计相结合,通过...
基于2024年新提出的算法改进:体内肺性能优化算法——LPO:呼吸系统自然效率的模拟与优化,基于体内肺性能优化的改进算法:2024年新提出的LPO算法,以自然效率为驱动的呼吸系统复杂优化方法,一种改进的肺功能优化算法...
阿里巴巴Java性能调优华山版是一套系统性能调优教程,!通过这份笔记的学习,你将会有一个系统的调优头脑和策略!快了何止100%?需要的朋友可下载试试! 众所周知性能调优可以使系统稳定,用户体验更佳,甚至在...
在探讨了内存优化和实时性能优化的基础上,本文还展望了基于ARM的嵌入式Linux终端系统性能实时优化的应用前景。随着嵌入式技术、人工智能技术与通信技术的融合发展,基于ARM的嵌入式Linux系统应用前景十分广阔,对于...
操作系统性能优化 操作系统性能优化是指通过合理地配置和优化操作系统的参数和设置,以...本文档对操作系统性能优化的方法进行了详细的讲解,涵盖了多个方面,可以帮助用户更好地了解操作系统性能优化的方法和重要性。
【性能优化方法论】 性能优化是提升系统效率和用户体验的关键环节,主要目标是解决资源有限性和用户需求之间的矛盾。在优化过程中,我们会采取多种策略,包括增加资源、减少耗时操作、提高资源利用率以及调整产品...
### 性能优化方法 性能优化的方法可以分为几个步骤: 1. **了解系统架构,收集信息**:这是优化的第一步,需要对系统进行全面的了解,包括硬件配置、软件版本、负载情况等,以便于后续的瓶颈分析和优化决策。 2. ...
共享池则存放最近使用的SQL语句,减少解析时间,提升系统性能。不过,过大或过小的共享池都可能导致性能下降,因此需要合理设定,如系统内存为1G时,共享池建议设为150M-200M,并随内存增加适当增加,但最大不超过...
Unity引擎开发:性能优化与资源管理_(10).物理系统优化.docx Unity引擎开发:性能优化与资源管理_(11).动画系统优化.docx Unity引擎开发:性能优化与资源管理_(12).粒子系统优化.docx Unity引擎开发:性能优化...
这一法则的提出,为MySQL性能优化提供了一个系统化的方法论,为开发人员和数据库管理员提供了实用的指导。 数据库基础知识是MySQL性能优化的基础,包括数据模型、数据存储、数据完整性和数据安全性等方面。数据模型...
Web系统性能优化是一个涉及多方面因素的复杂过程,它要求系统设计者和开发者具备广博的知识和深刻的理解。性能优化的目标是使Web应用能够快速响应用户的请求,同时维持较高的并发处理能力,确保系统资源的有效利用。...
音频系统性能优化.docx CryEngine引擎开发:性能优化与资源管理_(11).多线程与并行处理.docx CryEngine引擎开发:性能优化与资源管理_(12).加载与流送优化.docx CryEngine引擎开发:性能优化与资源管理_(13)....
性能优化方法和技巧 性能优化是软件开发中非常重要的一部分,它关注系统的控制流程和数据流程、算法的选择和优化、代码的执行顺序和缓存相关的优化等多个方面。性能优化的目的是提高系统的性能,减少系统的负载,...