Java代码优化课件.pptVIP

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

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

文档评论(0)

juan1388263 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档