最近在看《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技术...
【Android性能优化】是...综上,Android性能优化是一个系统性工程,需要综合考虑用户体验、系统资源利用、应用稳定性和效率等多个方面,通过对各个细节的深入理解和优化,才能打造出高效、稳定且用户友好的应用。
综上所述,论文所提出的基于机器学习的动态分区并行文件系统性能优化方法,在理论和实践上都展示出了其先进性。它为并行文件系统的性能优化提供了一个全新的视角,即将机器学习理论与并行文件系统的设计相结合,通过...
基于2024年新提出的算法改进:体内肺性能优化算法——LPO:呼吸系统自然效率的模拟与优化,基于体内肺性能优化的改进算法:2024年新提出的LPO算法,以自然效率为驱动的呼吸系统复杂优化方法,一种改进的肺功能优化算法...
【系统性能分析与优化】是IT领域中一个关键的话题,主要关注如何提升系统效率,解决性能瓶颈,...通过科学的分析方法和工具,我们可以找到性能短板,采取有效的优化策略,实现系统性能的提升,保障服务的高效稳定运行。
阿里巴巴Java性能调优华山版是一套系统性能调优教程,!通过这份笔记的学习,你将会有一个系统的调优头脑和策略!快了何止100%?需要的朋友可下载试试! 众所周知性能调优可以使系统稳定,用户体验更佳,甚至在...
在探讨了内存优化和实时性能优化的基础上,本文还展望了基于ARM的嵌入式Linux终端系统性能实时优化的应用前景。随着嵌入式技术、人工智能技术与通信技术的融合发展,基于ARM的嵌入式Linux系统应用前景十分广阔,对于...
### 性能优化方法 性能优化的方法可以分为几个步骤: 1. **了解系统架构,收集信息**:这是优化的第一步,需要对系统进行全面的了解,包括硬件配置、软件版本、负载情况等,以便于后续的瓶颈分析和优化决策。 2. ...
系统性能优化是提升应用系统效率的关键,涉及到多个层面的技术和策略。本文主要探讨了三个方面的优化方法:数据访问优化、数据库优化以及应用程序优化。 首先,数据访问优化关注于减少不必要的资源消耗。第一层次是...
共享池则存放最近使用的SQL语句,减少解析时间,提升系统性能。不过,过大或过小的共享池都可能导致性能下降,因此需要合理设定,如系统内存为1G时,共享池建议设为150M-200M,并随内存增加适当增加,但最大不超过...
Oracle数据库系统性能和应用性能优化是数据库管理员和开发人员关注的重要领域,它涉及到多个层面的调整和优化,以确保系统的高效运行。Oracle数据库是全球广泛使用的数据库管理系统,其性能直接影响到业务应用程序的...
这一法则的提出,为MySQL性能优化提供了一个系统化的方法论,为开发人员和数据库管理员提供了实用的指导。 数据库基础知识是MySQL性能优化的基础,包括数据模型、数据存储、数据完整性和数据安全性等方面。数据模型...
Unity引擎开发:性能优化与资源管理_(10).物理系统优化.docx Unity引擎开发:性能优化与资源管理_(11).动画系统优化.docx Unity引擎开发:性能优化与资源管理_(12).粒子系统优化.docx Unity引擎开发:性能优化...
性能优化方法和技巧 性能优化是软件开发中非常重要的一部分,它关注系统的控制流程和数据流程、算法的选择和优化、代码的执行顺序和缓存相关的优化等多个方面。性能优化的目的是提高系统的性能,减少系统的负载,...
C++性能优化是一个复杂的主题,它涉及编译器、算法、语言特性、硬件架构以及操作系统等多个层面。性能优化的目标是提升软件执行效率,减少资源消耗,缩短响应时间,以及提高吞吐量。下面将详细介绍这些性能优化的...
微服务架构也是性能优化的重要手段,它将复杂系统拆分为多个小型独立的服务,每个服务都可以独立开发、部署和扩展,降低了系统的耦合度,提高了系统的灵活性和可扩展性。 监控和日志分析是性能优化的持续过程。通过...
达梦数据库性能优化 ...达梦数据库的性能优化需要考虑到多方面的因素,包括数据库参数、系统缓冲区、磁盘 I/O 瓶颈等,通过科学的分析和优化,可以提高数据库的性能和并发效率,满足不同应用场景的需求。
- **内存泄漏**:对象不再被引用但未被垃圾回收器回收,占用内存资源不释放,导致系统性能下降甚至崩溃。 - **I/O操作效率低下**:如频繁的磁盘读写操作或网络通信延迟等,这些都可能导致整体性能降低。 - **数据库...