最近在看《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,有兴趣的同学可以去了解一下,在此就不介绍了。
分享到:
相关推荐
【Android性能优化】是...综上,Android性能优化是一个系统性工程,需要综合考虑用户体验、系统资源利用、应用稳定性和效率等多个方面,通过对各个细节的深入理解和优化,才能打造出高效、稳定且用户友好的应用。
"系统性能优化解决方案" 系统性能优化解决方案是一种旨在解决系统性能瓶颈、提高系统可用性和可靠性的解决方案。该解决方案涵盖了多个方面,包括缓存优化、程序容错优化、部分项目拆分、基础平台组件功能完善等。 ...
《大型网站性能优化实战:从前端、网络、CDN到后端、大促的全链路性能优化详解》中的很多性能优化方法和策略都是作者从实践中总结出来的,实用性非常强。《大型网站性能优化实战:从前端、网络、CDN到后端、大促的全...
阿里巴巴Java性能调优华山版是一套系统性能调优教程,!通过这份笔记的学习,你将会有一个系统的调优头脑和策略!快了何止100%?需要的朋友可下载试试! 众所周知性能调优可以使系统稳定,用户体验更佳,甚至在...
传统的嵌入式Linux终端系统性能优化方法通常忽略了硬件方面的优化,导致整体优化结果不佳。本文提出了一种基于ARM的嵌入式Linux终端系统性能实时优化方法,该方法通过对ARM硬件的中断管理和数据处理,实现了Linux...
Oracle数据库系统性能和应用性能优化是数据库管理员和开发人员关注的重要领域,它涉及到多个层面的调整和优化,以确保系统的高效运行。Oracle数据库是全球广泛使用的数据库管理系统,其性能直接影响到业务应用程序的...
共享池则存放最近使用的SQL语句,减少解析时间,提升系统性能。不过,过大或过小的共享池都可能导致性能下降,因此需要合理设定,如系统内存为1G时,共享池建议设为150M-200M,并随内存增加适当增加,但最大不超过...
### MySQL性能优化与SQL优化方法技巧 #### 一、引言 MySQL作为一款广泛使用的开源关系型数据库管理系统,其性能优化对于确保应用系统的稳定性和高效运行至关重要。通过对MySQL的优化,不仅能提升系统的响应速度,还...
性能优化方法和技巧 性能优化是软件开发中非常重要的一部分,它关注系统的控制流程和数据流程、算法的选择和优化、代码的执行顺序和缓存相关的优化等多个方面。性能优化的目的是提高系统的性能,减少系统的负载,...
这一法则的提出,为MySQL性能优化提供了一个系统化的方法论,为开发人员和数据库管理员提供了实用的指导。 数据库基础知识是MySQL性能优化的基础,包括数据模型、数据存储、数据完整性和数据安全性等方面。数据模型...
C++性能优化是一个复杂的主题,它涉及编译器、算法、语言特性、硬件架构以及操作系统等多个层面。性能优化的目标是提升软件执行效率,减少资源消耗,缩短响应时间,以及提高吞吐量。下面将详细介绍这些性能优化的...
微服务架构也是性能优化的重要手段,它将复杂系统拆分为多个小型独立的服务,每个服务都可以独立开发、部署和扩展,降低了系统的耦合度,提高了系统的灵活性和可扩展性。 监控和日志分析是性能优化的持续过程。通过...
通过了解Linux的内存管理机制和使用内存优化方法,可以提高系统性能。同时,使用性能优化工具可以帮助我们更好地监控和优化系统性能。 5. references * 《Linux Performance Optimization》 by WEL * 《Linux内存...
性能优化是指通过一系列技术和方法提升系统或应用程序在处理任务时的速度、效率及稳定性等指标的过程。它旨在充分发挥硬件资源的优势,同时减少不必要的资源消耗,从而提高用户体验和系统的整体表现。 ##### 1.1 ...
达梦数据库性能优化 ...达梦数据库的性能优化需要考虑到多方面的因素,包括数据库参数、系统缓冲区、磁盘 I/O 瓶颈等,通过科学的分析和优化,可以提高数据库的性能和并发效率,满足不同应用场景的需求。
- **内存泄漏**:对象不再被引用但未被垃圾回收器回收,占用内存资源不释放,导致系统性能下降甚至崩溃。 - **I/O操作效率低下**:如频繁的磁盘读写操作或网络通信延迟等,这些都可能导致整体性能降低。 - **数据库...