定位并修复内存泄漏


以一
以一 2023-12-30 22:47:57 51573 赞同 0 反对 0
分类: 资源
确定是否存在内存泄漏,启用详细的GC跟踪。 使用一些第三方插件进行分析(jprofile Visual VM等) 检查调用堆栈是否有未释放的引用(分析GC状态) 找出对象没有被垃圾回收的原因 编写代码手动删除此类对象

定位并修复内存泄漏

确定是否存在内存泄漏,启用详细的GC跟踪。 使用一些第三方插件进行分析(jprofile Visual VM等) 检查调用堆栈是否有未释放的引用(分析GC状态) 找出对象没有被垃圾回收的原因 编写代码手动删除此类对象

GC如何判断一个对象是否为垃圾?

1.引用计数法 主要是查看该对象是否还有引用指向它,如果有则说明该对象不是垃圾,反之则为垃圾。 具体就是给一个对象上标一个数字用来记录有多少个引用指向了该对象,当这个数字记录为0时,那就表示这个对象已经没有引用指向它了,那么这个对象就变成了垃圾。存在问题:循环引用 2.根可达算法 基本思路就是通过一系列名为”GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的。

C Roots如何选取

在Java语言中,可以作为GCRoots的对象包括下面几种: (1). 虚拟机栈(栈帧中的局部变量区,也叫做局部变量表)中引用的对象。 (2). 方法区中的类静态属性引用的对象。 (3). 方法区中常量引用的对象。 (4). 本地方法栈中JNI(Native方法)引用的对象。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
以一L0
粉丝 0 资源 1143 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  130
统信桌面专业版【全盘安装UOS系统】介绍  128
银河麒麟桌面操作系统安装佳能打印机驱动方法  120
银河麒麟桌面操作系统 V10-SP1用户密码修改  108
麒麟系统连接打印机常见问题及解决方法  28
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
麒麟系统连接打印机常见问题及解决方法 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益210.13元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!