为什么80%的码农都做不了架构师?>>>   

1.为每个线程生成自己的Random对象,因为不同线程在使用Random对象时,为更新一个内部种子而竞争。

2.使用ConcurrentHashMap而不是SynchronizedMap

3.使用各Collection类、StringBuilder和StringBuffer时,预先给定一个容量大小,因为自动扩容会占用不少的CPU。

4.对生产环境可以用 -server -XX:TieredCompilation 启动JVM,让JVM更多的优化代码.

5.2G~32G环境,用 -d64 -XX:+UseCompressedOops

6,32G以上环境,用 -d64

7.使用 -XX:+UseParallelOldGC 来启用多程的垃圾回收,如果不支持 -XX:+UseParallelOldGC ,可以用 -XX:+UseParallelGC 只开启多线程新生代垃圾回收

8.用 -Xms 和 -Xmx 将 JVM的堆空间最小值和最大值设定为相同大小,可以减少动态调整空间,fullGC对系统的影响。

9.用 -Xmn  将 JVM的新生代空间最小值和最大值设定为相同大小,可以减少动态调整空间,fullGC对系统的影响,仅在前一条配置下生效。

10.用 -XX:PermSize 和 -XX:MaxPermSize 指定JVM永久代的大小为相同值,可以减少动态调整空间,fullGC对系统的影响。

11.大小设定经验:不设置空间参数,让系统正常运行一段时间,收集在JVM自动进行FullGC后几个空间的大小,堆空间大小建议值为FullGC后时老年代大小的3~4倍。永久代的大小建议值为FullGC后永久代大小的1.2~1.5倍。新生代空间建议值为FullGC时老年代大小的1~1.5倍。

12.如果MinorGC的时间过长,超过系统可接受的最大停顿时间,减小新生代空间,不得小于总堆大小的10%;如果MinorGC的过于频繁,超过系统可接受的停顿频率,增大新生代空间。

13.如果日志中只有FullGC,每次老年代空间并得到足够的释放,需增加老年代空间的大小。

14.如果启用 -XX:+UseConcMarkSweepGC ,采用CMS收集器并行的老年代GC时,需增大老年代大小约20~30%,因为并发的老年代GC需要的时间更长,增加空间能减少GC的频率。

为GC申请最大内存原则:让老年代空间大到足以避免由堆内存碎片引起的Stop-The-World压缩,Stop-The-World压缩是因为空间在使用中发生了碎片化,必须要停下来对空间进行一次重新整合。

MinorGC回收原则:减少从新生代空间提升到老年代的比率,也就是说尽量让对象在对新生代进行MinorGC时就回收掉,提升到老年代后再回收的成本要高,可通过调整新生代中Survivor空间的大小,使其有足够的空间来容纳对象足够长的时间。使用 -XX:SurvivorRatio 配置Eden空间是与一个Survivor空间的倍数。如配置为4,一个Survivor大小=新生代空间/(4+1+1)。配置值越大,Eden空间越小,MinorGC越频繁,对象老化越快。增大Survivor空间大小时,应同步增加整个新生代空间的大小。

15.使用 -XX:CMSInitiatingOccupancyFraction 配置CMS收集器在老年代空间占用到百分之多少时,进行第一次回收。-XX:+UseCmsInitaitionOccupancyOnly 指定一直使用这个比例进行回收。恰当的回收比例可以减少发生老年代溢出的几率。建议让系统正常运行,进行几次自动FullGC后,求几次FullGC后老年代的大小的平均值,恰当的回收比例应为此大小的1.5倍。其若平均值为300M,那应该配置占用到450M时进行回收,若整个老年代的大小为600M,这个比例值为75。

转载于:https://my.oschina.net/piorcn/blog/393067

JAVA性能优化笔记(一)相关推荐

  1. Java性能优化权威指南--笔记

    出处:http://xiongpq.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 原文 ...

  2. 云时代架构阅读笔记二——Java性能优化(二)

    承接上文Java性能优化(一)https://www.cnblogs.com/guo-xu/p/11019267.html 4)尽量确定StringBuffer的容量 在说和这个标题相关之前,先说一下 ...

  3. Java性能优化指南(一)

    2015年在大物流项目中,给项目团队做了几次Java性能优化和问题排查的分享,不过效果都不是很好.一直觉得偏向技术实践类的东西,单纯的听和单纯的讲收获都很有限,最好的做法是阅读学习-理解-实践-总结, ...

  4. [原创]Java性能优化权威指南读书思维导图

    [原创]Java性能优化权威指南读书思维导图 书名:Java性能优化权威指南 原书名:Java performance 作者: (美)Charlie Hunt    Binu John 译者: 柳飞 ...

  5. Java性能优化技巧

    Java性能优化技巧 参考了些书籍,网络资源整理出来,适合于大多数Java应用 在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序 ...

  6. java strim性能_你所不知道的Java性能优化之String!

    Java性能优化之String字符串优化 1.字符串对象及其特点 Java中八大基本数据类型没有String类型,因为String类型是Java对char数组的进一步封装. String类的实现主要由 ...

  7. Java 性能优化的五大技巧

    要对你的 Java 代码进行优化,需要理解 Java 不同要素之间的相互作用,以及它是如何与其运行时的操作系统进行交互的.使用下面这五个技巧和资源,开始学习如何分析和优化你的代码吧. 在我们开始之前, ...

  8. 赠书:《Java性能优化实践》,众多业内大佬推荐阅读

    没有捷径可走的 Java 性能优化 多年来,用 Google 搜索 Java performance tuning,出现的三篇最热门文章之一是于 1997 年到 1998 年左右发表的文章,这篇文章在 ...

  9. java性能优化权威指南_Java性能优化权威指南 PDF扫描[132MB]

    Java性能优化权威指南主要为Java SE 和Java EE 应用的性能调优提供建议.主要包括以下几方面:性能监控.性能分析.Java HotSpot VM 调优.高效的基准测试以及Java EE ...

  10. Java性能优化指南,及唯品会的实战

    来了唯品会一年多,不少时间花在与服务化框架.业务应用的性能的缠斗上. 前几天正好趁着中生代社区的十月十城技术沙龙,把脑海中关于性能优化的记忆全部理了一遍-.讲完回家,又本着认真严谨的态度再理了一遍,终 ...

最新文章

  1. Nginx 性能调优实战
  2. java url 拦截_Spring mvc设置某些url不被interceptor拦截器拦截的方法
  3. 手把手教你写一个生成对抗网络
  4. FCN网络训练 SIFTFLOW数据集
  5. 解决添加Com引用 生成的Interop.*.dll 版本号永远是1.0的问题
  6. 脚本录制两种模式 HTML-based script和URL-based script模式
  7. php 去掉script,php怎么去除js
  8. 打印准考证服务器异常显示,2020准考证打印30个常见问题汇总及解决办法
  9. 化工材料企业中英双语网站搭建模板
  10. 电脑计算机睡眠和休眠模式区别,电脑休眠和睡眠的区别?
  11. ubuntu双系统修改启动菜单
  12. c语言的虚拟变量,含有分类变量(categorical variable)的逻辑回归(logistic regression)中虚拟变量(哑变量,dummy variable)的理解...
  13. Python中sep是函数吗?该怎么使用?
  14. 视觉SLAM14讲笔记02:ch5针孔,双目相机模型
  15. Linux 线程基础 1
  16. php怎么判断qq内置浏览器,如何判断微信内置浏览器(JS PHP)
  17. 数据的维护(数据库的增删改)
  18. LVGL7.11中使用freetype库加载显示字体
  19. 百度地图web API定位不准,定位偏移问题处理
  20. vacode允许c_在Windows10上用VSCode搭建C语言环境

热门文章

  1. win10怎样更改系统字体_怎样用电脑光盘重装win10系统?电脑光盘重装系统步骤图文教程...
  2. 数据分析工作常见的七种错误及规避技巧
  3. 【数学题】Multicolored Markers【codeforces-Round #506-div3-F】
  4. 基于离线策略的强化学习(PPO)
  5. 均匀带电直线外一点的场强
  6. 数据库管理(事务、ACID、并发、封锁、可串行化、隔离)
  7. Javascript的块级作用域
  8. A guess 解题报告
  9. cookie、session存储以及cookie使用环境 多数据存储批次加载渲染页面
  10. 万能的搜索--之DFS(二)