[Java程序性能优化让你的Java程序更快、更稳定-笔记.docxVIP

[Java程序性能优化让你的Java程序更快、更稳定-笔记.docx

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

第一章 java 性能调优概述1.1.2 性能的参考指标1.2.1 设计调优比如说如果A组件通过循环不断监控时间E是否发生,其必然会占用部分系统资源。但是可以通过observer模式解决:1.2.2 代码调优比如linkedList比ArrayList 随机访问性能好。1.2.3 JVM调优一般在开发后期做,比如内存结构,GC种类。1.2.4 数据库调优比如大量的拥有相同结构的SQL查询,可以用preparedStatement代替statement;指定要查询的列名,避免用“*”。比如设置oracle的共享池、缓存区。1 .2.5 操作系统调优比如调整unix的共享内存值。第二章 设计优化2.1 设计模式2.1.1 单例模式对于频繁使用对象,因为new次数少,对内存使用不频繁,将减轻GC压力。2.1.2 代理模式可以实现比如延迟加载2.1.3 享元模式好处同单例模式2.1.5 观察者模式可以代替多线程。2.1.6 Value Object 一次封装所有的属性值,省得一次次请求属性值。2.1.7 Business Delegate代理类中一组远程方法调用构成一个业务流程,客户端调用代理类。2.2 常用优化组件2.2.1 缓冲缓冲是一块内存区域,目的是缓解应用程序上下层之间的性能差异。2.2.2 缓存也是一块内存区域,目的是暂存数据处理结构,并供下次访问使用。也可用ehCache等框架2.2.3 对象复用池比如线程池和数据库连接池2.2.4 多线程2.2.5 负载均衡2.2.6 时间换空间比如少申请变量2.2.7 空间换时间比如用缓存第三章 java 程序优化3.3 使用NIO提升性能NIO为所有的原始类型提供buffer,NIO是基于Block的,NIO最重要的组件是buffer和Channel。 buffer是一个连续的内存快,是NIO读写数据的中转池。通道表示缓冲数据的源头或者目的地,它是用于想缓存读取或写入数据,是访问缓冲的接口。3.4 使用软引用和弱引用3.5 有利于改善性能的技巧3.5.1 慎用异常3.5.2 使用局部变量,因为局部变量是在stack中,比较快。3.5.3 位运算代替乘除法3.5.12 静态方法代替实例方法第四章 并行程序优化4.5 锁的优化4.5.7 ReentrantLock 重入锁4.5.9 自旋锁4.5.10 锁清除java即时编译时,上下文扫描,去除不可能存在共享资源竞争的锁,这样可以节省毫无意义的请求锁时间4.5.11 锁偏向(biased)4.6 无锁例如TreadLocal,和 CAS算法(Compare and Swap)。4.6.3 Amino 是apache的项目,提供了一些线程安全的、基于无锁算法的数据结构例如lockFreeList.还内置了一些多线程调度模式(例如Master-Worker模式)。4.7 协程为了提高并发数量,对线程进一步分割。(/kobejayandy/article/details种语言在实现Coroutine方式的支持时,多数都采用了Actor Model来实现,Actor Model简单来说就是每个任务就是一个Actor,Actor之间通过消息传递的方式来进行交互,而不采用共享的方式,Actor可以看做是一个轻量级的进程或线程,通常在一台4G内存的机器上,创建几十万个Actor是毫无问题的。)第五章 JVM调优5.3.10 CMS(Concurrent Mark Sweep)收集器,用标记-清除算法,同时使用多线程。5.3.10 G1收集器,在吞吐量和停顿控制上好于CMS.5.4 常用调优方法5.4.1 把新对象留在新生代。5.4.2 长命的大对象进入老年代,免得新生代老GC5.4.4 稳定堆大小5.4.5 并行收集器适合吞吐量优先,可以减少GC的总时间。5.4.7 降低停顿,可以用CMS 收集器和尽可能把对象预留在新生代。5.5 实用JVM参数5.5.1 JIT 5.5.4 打印GC +PrintGC5.5.5 类和对象跟踪 总结第六章 java性能调优工具6.1 linux 命令Nmon Axis里看见各种性能6.3 JDK命令行

文档评论(0)

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

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

1亿VIP精品文档

相关文档