最近在看《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技术...
本文提出了一种基于机器学习的数据库性能优化方法,主要针对数据库的IO性能进行预测和优化。这种方法利用SOFTMAX分类器对数据库参数数据和系统IO性能指标进行模型训练,能够在高维度输入下准确预测数据库IO性能趋势...
【Android性能优化】是...综上,Android性能优化是一个系统性工程,需要综合考虑用户体验、系统资源利用、应用稳定性和效率等多个方面,通过对各个细节的深入理解和优化,才能打造出高效、稳定且用户友好的应用。
"系统性能优化解决方案" 系统性能优化解决方案是一种旨在解决系统性能瓶颈、提高系统可用性和可靠性的解决方案。该解决方案涵盖了多个方面,包括缓存优化、程序容错优化、部分项目拆分、基础平台组件功能完善等。 ...
综上所述,论文所提出的基于机器学习的动态分区并行文件系统性能优化方法,在理论和实践上都展示出了其先进性。它为并行文件系统的性能优化提供了一个全新的视角,即将机器学习理论与并行文件系统的设计相结合,通过...
阿里巴巴Java性能调优华山版是一套系统性能调优教程,!通过这份笔记的学习,你将会有一个系统的调优头脑和策略!快了何止100%?需要的朋友可下载试试! 众所周知性能调优可以使系统稳定,用户体验更佳,甚至在...
【系统性能分析与优化】是IT领域中一个关键的话题,主要关注如何提升系统效率,解决性能瓶颈,...通过科学的分析方法和工具,我们可以找到性能短板,采取有效的优化策略,实现系统性能的提升,保障服务的高效稳定运行。
在总结研究方面,Ceph分布式存储系统的性能优化技术研究将不断深化,为构建更加高效、可扩展的云计算和大数据存储平台提供技术支撑。这不仅要求对Ceph系统本身有深入的理解,还要求研究者关注存储技术、计算机网络、...
分布式文件系统GlusterFS性能优化研究中涉及到的关键知识点包括分布式文件系统的基本概念、GlusterFS的架构特点、性能优化策略以及优化测试和实验平台的搭建和分析方法。 首先,分布式文件系统是一种把数据存储在多...
在探讨了内存优化和实时性能优化的基础上,本文还展望了基于ARM的嵌入式Linux终端系统性能实时优化的应用前景。随着嵌入式技术、人工智能技术与通信技术的融合发展,基于ARM的嵌入式Linux系统应用前景十分广阔,对于...
【性能优化方法论】 性能优化是提升系统效率和用户体验的关键环节,主要目标是解决资源有限性和用户需求之间的矛盾。在优化过程中,我们会采取多种策略,包括增加资源、减少耗时操作、提高资源利用率以及调整产品...
### 性能优化方法 性能优化的方法可以分为几个步骤: 1. **了解系统架构,收集信息**:这是优化的第一步,需要对系统进行全面的了解,包括硬件配置、软件版本、负载情况等,以便于后续的瓶颈分析和优化决策。 2. ...
系统性能优化是提升应用系统效率的关键,涉及到多个层面的技术和策略。本文主要探讨了三个方面的优化方法:数据访问优化、数据库优化以及应用程序优化。 首先,数据访问优化关注于减少不必要的资源消耗。第一层次是...
Linux系统性能优化是每个Linux用户都需要了解和掌握的重要知识点。今天,我们将讨论如何优化Linux系统性能,包括系统状态、CPU周期百分比、每个进程占用的存储空间、每个进程运行的时间等信息。 在Linux系统中,...
Unity引擎开发:性能优化与资源管理_(10).物理系统优化.docx Unity引擎开发:性能优化与资源管理_(11).动画系统优化.docx Unity引擎开发:性能优化与资源管理_(12).粒子系统优化.docx Unity引擎开发:性能优化...
性能优化方法和技巧 性能优化是软件开发中非常重要的一部分,它关注系统的控制流程和数据流程、算法的选择和优化、代码的执行顺序和缓存相关的优化等多个方面。性能优化的目的是提高系统的性能,减少系统的负载,...
, 《Java程序性能优化:让你的Java程序更快、更稳定》共6章,先后从软件设计、软件编码、JVM调优以及程序故障排斥等方面介绍针对Java程序的优化方法。第1章介绍性能的基本概念、定律、系统调优的过程和注意事项。第2...
C++性能优化是一个复杂的主题,它涉及编译器、算法、语言特性、硬件架构以及操作系统等多个层面。性能优化的目标是提升软件执行效率,减少资源消耗,缩短响应时间,以及提高吞吐量。下面将详细介绍这些性能优化的...
微服务架构也是性能优化的重要手段,它将复杂系统拆分为多个小型独立的服务,每个服务都可以独立开发、部署和扩展,降低了系统的耦合度,提高了系统的灵活性和可扩展性。 监控和日志分析是性能优化的持续过程。通过...
通过了解Linux的内存管理机制和使用内存优化方法,可以提高系统性能。同时,使用性能优化工具可以帮助我们更好地监控和优化系统性能。 5. references * 《Linux Performance Optimization》 by WEL * 《Linux内存...