Java代码优化
综合监控
.
1
代码优化
代码优化原则
代码优化步骤
代码优化实践
.
2
代码优化原则
代码优化是什么。代码优化是指对程序代码进行等价(指不改变程序的运行结果)变换。程序代码可以是中间代码,也可以是目标代码。等价的含义是使得变换后的代码运行结果与变换前代码运行结果相同。优化的含义是最终生成的目标代码更加轻松自如(运行时间更短、占用空间更小)地工作,时空效率优化。
明确为什么优化。现场问题触发,维护工作量大等等
优化是要朝着好的方向发展而不是过度地优化,过度优化会降低程序可读性,会给后期维护人员增加难度系数。满足实际需要即可,不要为了优化而优化。 要对优化的对象,进行测试或者有一定的深入理解。有些api人家的单线程效率就非常高,你为了优化,写了一堆多线程,然后各种锁,各种问题。。。。。
预防大于优化。
.
3
代码优化步骤
1、明确优化目标
在优化工作开始的时候,你还尚未明确优化内容和目的,那么你很容易陷入误区。在一开始,你就应该清楚地了解你要达到的效果,以及其他优化相关的各种问题。这些目标需要明确指出(至少精通技术的项目经理可以理解和表达它),接下来,在整个优化过程中,你需要坚持这些目标。
2、选择正确的优化指标
选择正确的指标,是优化的一个重要组成部分,你需要按照这些指标来测量优化工作的进展情况。如果指标选择不恰当,或者完全错误,你所做的努力有可能白费了。即使指标正确,也必须有一些辨别。在某些情况下,将最多的努力投入到运行消耗时间最多的那部分代码中,这是实用的策略。但也要记住,Unix/Linux内核的大部分时间花费在了空循环上。需要注意的是,如果你轻易选择了一个很容易达到的指标,这作用不大,因为没有真正解决问题。你有必要选择一个更复杂的、更接近你的目标的指标。
3、找到优化的关键点
这是有效优化的关键。找到项目中与你的目标(性能、资源或其他)相背的地方,并将你的努力和时间用在那里。举一个典型的例子,一个Web项目速度比较慢,开发者在优化时将大部分精力放在了数据库优化上,最终发现真正的问题是网络连接慢。另外,不要分心于容易实现的问题。这些问题尽管很容易解决,但可能不是必要的,或与你的目标不相符。容易优化并不意味着值得你花费工夫。
使用java工具:jmap,jstack,jprofiler等
4、优化完后测试功能!
.
4
代码优化实践
运行更快
( jstack,内存换效率)
内存更小
先预防,再优化
.
5
告警统计效率优化
for $ne in neList{
id=
cls=
alarm= (id)
//do some things
}
数据:neList 1000w的网元集合,alarmMap<neId,alarm>10w的告警map
问题:根据object_class统计告警数,执行慢
方法:jstack,内存换效率
。 如:java的crc32换成 hadoop里的crc32
,内存换效率
prepare:neMap
for entry in {
id=
alarm=
ne=(id)
cls=
//do some things
}
旧方案
新方案
.
6
告警统计效率优化
其他方法:使用JavaVisualVM/Jprofiler查看方法耗时
.
7
DW线程优化
问题:DealThread,SendDataThread等都用Queue传递数据
方法:抽象、继承
.
8
DW线程优化
修改前
修改后
.
9
DW线程优化
抽象后可以
,catch
,统一的日志记录
.
10
java代码优化 来自淘豆网m.daumloan.com转载请标明出处.