听我一句劝好吗?放下那些老掉牙的性能优化笔记吧!又不是没有新的,跟不上时代的学了也没法直接用呀!

性能概述

公司投入人力物力成本开发出的程序,如果出现程序瘫痪、界面停顿、抖动、响应迟缓等问题,会大大降低用户体验,损失大量用户。对于上述问题,都是需要性能调优来解决的问题。

程序性能主要表现在代码的执行速度、软件系统的内存分配是否合理、代码的启动加载时间是否够长、软件系统的负载承受能力是否足够等方面。

常见的系统瓶颈如下:

磁盘I/O:磁盘io读写速度远小于内存读写,低效的磁盘io会拖垮整个系统。
网络传输:代码需要对互联网上的数据进行读写,由于网络环境的不确定性,网络读写的速度较慢也会成为系统性能瓶颈。
CPU资源抢占:系统中存在科学计算、3d渲染等对cpu资源长期占用的操作,也会造成其他操作cpu资源抢占时的性能问题。
异常捕获:异常捕获和处理较为消耗资源,程序中过多捕获异常也会造成性能问题
数据库操作:大部分系统需要数据库读写查询,如果数据读写耗时较长也会拖死整个系统。
高并发场景下的锁竞争:在高并发场景下,为了防止并发问题时常需要加锁,在锁资源抢占时,会造成系统的性能问题。
系统内存的分配:内存和磁盘的比例要合理,内存过小也会成为系统读写
的瓶颈。

对于很多刚刚入门学习Java的学员而言,如何更好的学习到Java的相关理论知识很重要。除了多打代码之外,那么掌握一些简单有效的Java性能优化小技巧,不仅仅有利于更好的运用Java编程语言,同时还能提高程序性能!

今天小编就来分享一份Alibaba内部的720页Java程序性能优化实战手册,上线之后大获好评!当时看完这份资料的时候,感到首先就Java的方方面面讲得比较全,但是不乱。而且每个点都讲得比较清楚,读下来也没有什么盲点。干货非常多。国内少有的能写得这么好的。我看了收获很多。

核心内容

把细节打磨得极其突出

以前我以为写的代码要崩溃是件挺困难的事情,但是现在发现貌似系统瘫痪也挺常见的……

当遇到系统瘫痪,所做的办法也不过是通过Linux命令查找线上环境的性能指标,查看dump日志,然后查代码,最后定位问题。看起来是一个很简单的步骤,但是这里每一步都考验着基础和功底。

我以为,要想做好Java性能调优,有几点是很重要的。

第一,是计算机相关的基础要足够扎实。我们需要熟悉计算机组成原理、操作系统、数据库等等基础知识。这样才有可能在纷繁复杂的系统中找到调优的点。

其次,要透过源码来熟悉技术的本质。我经常觉得,只通过技术论坛上学到的技术是不够的,那些都是生产者消化后总结的知识点。我们需要去深入源码,自己去分析学习和总结,这样才能更客观地学习一项技术,而且还要能通过源码来学习别人的思维方式。

最后,则是要善于总结。使用一项技术,不能仅仅停留在“可以用”“好用”等方面,而是要善于去追问:为什么要使用,使用对系统性能有什么提升?和其他的技术对比好处在哪?其原理又是什么?唯有在理解这些问题之后,才能在遇到性能问题的时候,及时地想到解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值