暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Java性能优化思想

风济海 2021-07-25
706


常见的Java性能优化的思想有以下几个方面。


【一、池化技术】

池化技术的核心思想是复用,如果一个类被频繁的请求使用,通过把该类的一些实例放到一个池中,需要时直接从池中取出来使用,避免频繁的创建实例。


比较常见的应用场景:数据库连接池线程池http连接池


【二、缓冲】

缓冲,可以作为上层组件和下层组件的一种通信工具,用来协调两者之间的性能差。


日常生活中常见的场景:当往口较小的容器中灌入液体(比如油)时,通过漏斗来对流量进行控制(流量注入漏斗的速度比漏斗漏的速度快)。


Java中常见的应用场景:IO Buffer:通过缓冲区进行数据处理,在读取数据时,它是直接读到缓冲区中的;在写入数据时,写入到缓冲区中。


系统中常见的应用场景:消息中间件,如下图,通过使用消息中间件,提升了系统A的性能、降低系统A和系统B的耦合度、流量削峰。


【三、缓存】

缓存是把数据存储在可以进行高速访问的存储介质中,供系统处理。好处有两个:其一,缓存访问速度快,可以减少数据访问时间;其二,如果缓存中的数据是通过计算处理存储进去的,那么访问缓存时无需再次处理,直接获取使用,减少了数据计算处理时间。


常见的应用场景:1)客户端浏览器缓存:减少对网站的访问。2)应用程序缓存:减少对数据库的访问。3)Web服务器缓存:减少对应用服务器的请求。


常见的实现手段:ConcurrentHashMap、EhCache、Redis、Memcached等。


【四、并行代替串行】

随着多核时代的到来,CPU的并行能力有了很大的提升,在这种背景下,传统的串行程序已经无法发挥CPU的最大潜能,造成系统资源的浪费,而并行程序可以在这方面将CPU性能发挥到极致。


常见应用场景:线程池


【五、负载均衡】

负载均衡是将负载(比如工作任务、访问请求)进行平衡,分发到多个操作单元(组件、服务器)上进行执行。是解决高性能、高可用、扩展性(水平伸缩)的终极解决方案。


常见的负载均衡工具:LVS、Nginx、HAProxy。


【六、时间换空间】

时间换空间:对于消耗内存的程序(CPU资源空闲,内存紧张),可用通过多消耗时间来降低内存消耗。


常见应用场景:分页查询


【七、空间换时间】

空间换时间:对于执行的慢的程序(CPU资源紧张、内存充足时),可以通过消耗内存来进行优化。


常见应用场景:缓存


欢迎点赞分享在看收藏



文章转载自风济海,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论