参数基本策略 各分区的大小对GC的性能影响很大。如何将各分区调整到合适的大小,分析活跃数据的大小是很好的切入点。 活跃数据的大小是指,应用程序稳定运行时长期存活对象在堆中占用的空间大小,也就是Full GC后堆中老年代占用空间的大小。可以通过GC日志中Full GC之后老年代数据大小得出,比较准确的 ...
分类:
其他好文 时间:
2020-07-06 18:04:14
阅读次数:
55
垃圾收集前的判断 1:判断对象“死活” 引用计数算法:定义略,主流的Java虚拟机并没有选用引用计数算法来管理内存,因为此算法很难解决对象之间的相互循环引用的问题 可达性分析算法:定义略,可作为GC Roots的对象包括: 1:虚拟机栈(栈帧中的本地变量表)中引用的对象 2: 方法区中静态类属性引用 ...
分类:
其他好文 时间:
2020-07-06 12:43:22
阅读次数:
67
Serial 与 Parallel 在 GC 执行的时候都会引起 stop-the-world。它们之间主要 不同 serial 收集器是默认的复制收集器,执行 GC 的时候只有一个线程,而 parallel 收集器使用多个 GC 线程来执行。 ...
分类:
其他好文 时间:
2020-07-05 15:15:18
阅读次数:
101
Relationship Introduction Set the Size OOM Inside the Memory Area (Metadata) GC ...
分类:
其他好文 时间:
2020-07-05 13:54:35
阅读次数:
60
jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下: jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数] 注意:这里使用的jdk版本是jdk8. 类加载统计: Loaded:加载class的数量 Bytes:所占用空间大小 Unloaded:未加载数 ...
分类:
Web程序 时间:
2020-07-05 00:56:45
阅读次数:
84
日前查看某个程序的日志,发现一直在报GC相关的信息,不确定这样的信息是代表正确还是不正确,所以正好借此机会再复习下GC相关的内容: 以其中一行为例来解读下日志信息: [GC (Allocation Failure) [ParNew: 367523K->1293K(410432K), 0.002398 ...
分类:
其他好文 时间:
2020-07-04 20:52:20
阅读次数:
142
首先来看看Linux平台下如何使用gcc编译出当下平台的可执行程序。 我们先来准备一个main.c文件 #include<stdio.h> int main(){ printf("Hello Gcc!"); return 0; } 上面是一个c语言写的很简单的一段代码,目的是要输出“Hello Gc ...
分类:
移动开发 时间:
2020-07-04 01:45:25
阅读次数:
114
面向对象 面向对象思维方式是一种更符合人们思考习惯的思想 面向过程思维方式中更多的体现的是执行者(自己做事情),面向对象中更多的体现是指挥者(指挥对象做事情)。 面向对象思维方式将复杂的问题简单化。 定义类的格式 public class 类名 { //可编写0至n个属性 数据类型 变量名1; 数据 ...
分类:
编程语言 时间:
2020-07-03 19:14:43
阅读次数:
57
full gc 是对新生代,旧生代,以及持久代的统一回收 新生代 主要是用来存放新生的对象。一般占据堆空间的1/3,由于频繁创建对象,所以新生代会频繁触发MinorGC进行垃圾回收。 旧生代 对象比较稳定,所以MajorGC不会频繁执行 次数频繁,则表示服务器不断挂起 引用 https://blog ...
分类:
其他好文 时间:
2020-07-03 10:38:16
阅读次数:
46
针对新生代的GC复制算法和老年代的GC标记-整理算法,jvm针对新生代和老年代分别提供了不同的垃圾收集器 新生代: Serial,ParNew, ParallelScavenge 老年代:CMS,SerialOld(MSC),ParallelOld 从新生代介绍起: 1.Serial 垃圾收集器(单 ...
分类:
其他好文 时间:
2020-07-01 23:52:59
阅读次数:
79