当 System.gc() 或 Runtime.getRuntime().gc()等API被调用时,将触发完整的GC事件。在GC完成之前,整个JVM将冻结(即正在运行的所有服务将被暂停),通常完整的GC需要很长时间才能完成。因此在不合适的时间运行GC,将导致不良的用户体验,甚至是崩溃。

GC操作应该由JVM自行控制,在绝大部分的场景都不建议程序员手动写代码显式进行System.gc()操作,但是也不排除其中个别例外:在我们开发多个微服务时,每个服务都有多个备份节点。在非业务高峰时段,我们可以从微服务-负载均衡的节点池中取出其中一个JVM实例。然后通过该JVM上的JMX显式触发System.gc()调用,一旦GC事件完成并且从内存中清除了垃圾,将该JVM放回到微服务-负载均衡的节点池中。

每次要建立的对象 列个表出来 全都丢入threadlocal里面 每次请求进来get set就好了

java应用性能调优之详解System的gc垃圾回收方法 - 字母哥博客 - 博客园 (cnblogs.com)

记一起Java大对象引起的FullGC事件及GC知识梳理 - 琴水玉 - 博客园 (cnblogs.com)

如何处理JAVA大量对象回收问题? - 知乎 (zhihu.com)

只有FullGC才会STW吗? - 知乎 (zhihu.com)

【java】手动释放资源问题_忧落的博客-CSDN博客

gc System.gc() fullGC相关推荐

  1. 4、JVM垃圾回收机制、新生代的GC、GC(Minor GC、FullGC)、GC日志、JVM参数选项、元空间(笔记)

    4.JVM垃圾回收机制 4.1.新生代的GC 4.1.1.串行GC(SerialGC) 4.1.2.并行回收GC(Parallel Scavenge) 4.1.3.并行GC(ParNew) 4.2.G ...

  2. JVM学习笔记之-垃圾回收相关概念 System.gc()的理解 内存溢出与内存泄漏 STW 垃圾回收的并行与并发 安全点与安全区域 再谈引用:强引用 软引用 弱引用 虚引用 终结器引用

    System.gc()的理解 在默认情况下,通过System.gc()或者Runtime. getRuntime ( ).gc ()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试 ...

  3. JVMGC(三)-System.gc()方法

    前言 在默认情况下,System.gc()会显示直接触发Full GC,同时对老年代和新生代进行回收.而一般情况下,垃圾回收应该是自动进行的,无需手工触发,否则就太麻烦了. 示例 public cla ...

  4. 【Java 虚拟机原理】垃圾回收算法 ( 设置 JVM 命令参数输出 GC 日志 | GC 日志输出示例 | GC 日志分析 )

    文章目录 一.设置 JVM 命令参数输出 GC 日志 二.GC 日志示例 三.GC 日志分析 一.设置 JVM 命令参数输出 GC 日志 在 IntelliJ IDEA 的启动参数中设置 -XX:+P ...

  5. JVM:gc什么时候开始?System.gc()能保证gc一定发生吗?

    gc什么时候开始? "你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?" 在什么时候: 1.新生代有一个Eden区和两个survivor区,首先将对象放入Ede ...

  6. java的System.gc()的理解

    目录 什么是System.gc() 实例1 实例2 什么是System.gc() 1.在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发F ...

  7. jstat的小伙伴:找出system.gc的调用的小工具

    场景分析 现场环境中,造成gc频繁的可能性之一就是通过system.gc主动调用了gc.这种情况出现在开发人员业务代码,或者是jdk自身的代码中(例如nio).我们可以通过jstat -gccause ...

  8. 一个利用System.gc和finalize研究Java垃圾回收机制的练习

    源代码: package basic;public class finalizeTest {private String name;public void finalize(){System.out. ...

  9. System.gc()调用 - 适用的场景

    一.System.gc()调用 System.gc()用于调用垃圾收集器,在调用时,垃圾收集器将运行以回收未使用的内存空间.它将尝试释放被丢弃对象占用的内存.然而System.gc()调用附带一个免责 ...

最新文章

  1. [No000039]操作系统Operating Systems用户级线程User Threads
  2. CentOS-7.2部署Squid服务
  3. python 简易HTTP服务器搭建
  4. 字符串复制中的while条件
  5. Android开发如何进阶?
  6. iptables实现访问A的请求重定向到B
  7. DS二叉树--二叉树之数组存储
  8. jsp 嵌入java_关于JSP里的Java语句嵌入问题
  9. android 在线设计工具,21个免费的UI界面设计工具、资源及网站
  10. MySQL之InnoDB索引的一些问题
  11. 发现网络产品漏洞后,应立即通知上游开发者,并及时通知下游用户
  12. python自定义类型转换_Python JSONDecoder自定义null类型的转换
  13. 超纤商标为精美时尚服饰再添点睛之笔
  14. 使用BCDboot工具,修复windows 系统启动,双启动菜单丢失故障
  15. 什么是无线射频识别技术(RFID)
  16. CentOS护眼颜色
  17. html中表格table冻结行和列
  18. 基于T5CPU的智能屏产品型号与内核对照表
  19. php圆的周长_php面向对象编程练习:计算矩形、三角形、圆形的周长和面积
  20. ubuntu系统怎么看电脑配置

热门文章

  1. android系统wifi控制风扇,无线远程遥控风扇设计实现
  2. 关于一些数据集的下载链接
  3. 判断某日是一年中的第几天
  4. sklearn基础(一)文本特征提取函数CountVectorizer()和TfidfVectorizer()
  5. 搭建FTP服务器后访问时出现“FTP文件夹错误 无法与服务器建立连接”的解决办法
  6. 苹果8的爆料这么多?为什么...
  7. AjaxFileUploaderV2.1修改版
  8. flutter 如何实现上下标效果
  9. 酒店数据泄露门后万豪会员计划遭重创
  10. 机场航班信息显示系统