进程物理内存远大于Xmx的问题分析 (club.perfma.com)

【简介】

最近经常被问到一个问题,”为什么我们系统进程占用的物理内存(Res/Rss)会远远大于设置的Xmx值”,比如Xmx设置1.7G,但是top看到的Res的值却达到了3.0G,随着进程的运行,Res的值还在递增,直到达到某个值,被OS当做bad process直接被kill掉了。

点击查看全文 >>

@PerfMa社区 2020-05-12 14:47分享 / 0个评论
赞过的人: PerfMa社区
要不要再学学下面的文章?
JVM源码分析之Attach机制实现完全解读 (club.perfma.com)
在讲这个之前,我们先来点大家都知道的东西,当我们感觉线程一直卡在某个地方,想知道卡在哪里,首先想到的是进行线程dump,而常用的命令是jstack ,我们就可以看到如下线程栈了
by @PerfMa社区 2020-05-26 11:00 分享 查看详情
一个导致JVM物理内存消耗大的Bug (club.perfma.com)
发现一个系统老是被OS Kill掉,是内存泄露导致的。在查的过程中,阴差阳错地发现了JVM另外的一个Bug。这个Bug可能会导致大量物理内存被使用,我们已经反馈给了社区,并得到快速反馈,预计在OpenJDK8最新版中发布(JDK11中也存在这个问题)。
by @PerfMa社区 2020-05-22 10:48 分享 查看详情
都知道避免ANR,但该如何分析,定位,解决? (mp.weixin.qq.com)
application not responding 程序无响应。程序在规定的时间内没有响应。
超时时间的计数一般是从按键分发给app开始。超时的原因一般有两种:

1.当前的事件没有机会得到处理(即UI线程正在处理前一个事件,没有及时的完成或者looper被某种原因阻塞住了);
2.当前的事件正在处理,但没有及时完成。
by @DataFunBoy 2020-04-28 08:55 分享 查看详情
JVM源码分析之JDK8下的僵尸(无法回收)类加载器 (club.perfma.com)
现象是有一些类加载器是作为key放到WeakHashMap里的,但是经历过多次full gc之后,依然坚挺地存在内存里,但是从代码上来说这些类加载器是应该被回收的,因为没有任何强引用可以到达这些类加载器了
by @PerfMa社区 2020-04-21 16:25 分享 查看详情
Android版微信后台保活实战分享(进程保活篇) (www.52im.net)
哪些部分需要“保活”?按照我们的理解包含两部分:
1、网络连接保活:
如何保证消息接收实时性。
2、进程保活:
尽量保证应用的进程不被Android系统回收。这是本文要讨论的内容。
by @shengting 2020-04-16 16:09 分享 查看详情
JVM源码分析之System.currentTimeMillis及nanoTime原理详解 (club.perfma.com)
有同事问了我一个现象很诡异的问题,说JDK7和JDK8下的System.nanoTime()输出完全不一样,而且差距还非常大,是不是两个版本里的实现不一样,之前我也没注意过这个细节,觉得非常奇怪,于是自己也在本地mac机器上马上测试了一下
by @PerfMa社区 2020-04-14 11:35 分享 查看详情
Flutter1.12 升级后的问题 (mp.weixin.qq.com)
相信看过官方更新日志的小伙伴都知道新版本的flutter和Android原生交互有一些改变,主要在以下部分
1.自定义的Plugin类需要实现FlutterPlugin的接口,并实现以下两个方法
by @code小生 2020-04-06 21:31 分享 查看详情
JDK的sql设计不合理导致的驱动类初始化死锁问题 (club.perfma.com)
当我们一个系统既需要mysql驱动,也需要oracle驱动的时候,在并发加载初始化这些驱动类的过程中产生死锁的可能性非常大,下面是一个模拟的例子,对于Thread2的实现其实是jdk里java.sql.DriverService的逻辑,也是我们第一次调用java.sql.DriverManager.registerDriver注册一个驱动实例要走的逻辑(jdk1.6下),不过这篇文章是使用我们生产环境的一个系统的线程dump和内存dump为基础进行分析展开的。
by @PerfMa社区 2020-03-31 10:32 分享 查看详情
硬核科普:携号转网的技术原理分析 (www.huxiu.com)
一个数据冗余,难倒英雄汉。

我们的手机号,实际上有两个,分别是IMSI和MDN。

IMSI的全名是International Mobile Subscriber Identity,国际移动用户识别码。它是一种“永久用户标识”,每一个手机SIM卡,对应一个IMSI号码。

IMSI号码由三部分组成,分别是:
1、MCC (Mobile Country Code) 移动国家码;
2、MNC (Mobile Network Code) 移动网络码;
3、MSIN (Mobile Subscriber Identity) 移动用户识别码;

MCC是3位数字(中国是460),MNC是2-3位数字,MSIN是10-11位数字。加起来的IMSI,一般不超过15位,通常就是15位(例如我们国家)。
by @shengting 2020-03-24 11:28 分享 查看详情
JVM源码分析之javaagent原理完全解读 (club.perfma.com)
本文重点讲述javaagent的具体实现,因为它面向的是我们java程序员,而且agent都是用java编写的,不需要太多的c/c++编程基础,不过这篇文章里也会讲到JVMTIAgent(c实现的),因为javaagent的运行还是依赖于一个特殊的JVMTIAgent。
by @PerfMa社区 2020-03-24 10:25 分享 查看详情