GC参数列表

默认的GC收集器 启动模式 新生代GC方式 旧生代和持久带GC方式 client 串行 串行 server ParNew CMS GC参数列表 参数名称 含义 默认值 -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制. -Xmx 最大堆大小 物理内存……

Hotspot JVM GC算法和垃圾收集器

垃圾回收算法 引用计数 – 不能识别循环以来,MS COM Smart Pointer使用,或者教学上使用。 拷贝(Copy-Stop) – Jvm新生代使用,适合朝生夕灭的对象。 标记清除(Mark-Sweep) – CMS老年带默认使用 标记整理(Mark-Sweep-Slide Over) – CMS 老年代通过配置可以使用,适合大对象,生命周期长的对象。 ……

让GC日志打印可读的时间戳

1<code>-XX:+PrintGCTimeStamps -----&gt; -XX:+PrintGCDateStamps 很多线上Java服务器使用-XX:+PrintGCTimeStamps选项打印GC时间,这个选项记录的是Jvm启动时间为起点的相对时间,也就是JVM启动后的毫秒数,可读性较差,不利于定位问题,使用-XX:+PrintGCDateStamps记录的是系统时间,可以结合业务情况或者用……

如何强制JVM执行GC?

在一些业务场景下,用户难以忍受Full GC所带来的长时间响应停顿,这种情况下可以选择在非业务时间手工执行GC,以免老年代过大而导致Full GC执行后stop-the-world时间过长,还有一些情况下,我们需要手工的执行GC,来观察GC的回收情况,从而来排查线上的内存问题,因此,我们需要找到一个简单方便的方法来手工调用GC,今天……

Redis为什么是单线程?

1. Redis基本是内存操作,在IO和网络操作的时候,多线程的程序可以很好的利用CPU时间。那在基本是内存操作的情况下,单线程程序应该可以充分利用CPU时间了。 2. 由于是内存操作,所以用户响应时间很短。 我们知道Redis是用”单线程-多路复用IO模型”来实现高性能的内存数据服务的,这种机制避免了使用锁,但是……