JAVA虚拟机系列-内存数据区域

概述 JVM虚拟机(这里讲的是HotSpot)的内存可以抽象的分为两大块 线程私有 程序计数器 虚拟机栈 本地方法栈 线程共享 堆 方法区 程序计数器 程序计数器是一块比较小的内存区域,主要的作用是记录当前线程执行的字节码指令位置。线程在执行字节码指令时,根据这个来定位当前执行的字节码指令位置,而且还可以通过它来计算下一个字节码指令。 例如以下某个方法的字节码,程序计数器的作用是保存本线程当前执行的指令位置,因此程序计数器是线程私有的, ...

linux 五种网络IO模型

基本概念 1. 内核空间和用户空间 现代操作系统用的都是虚拟存储器(即对上层应用来说,地址是连续的,但是在磁盘上不一定是连续的),一般32位的寻址空间为4G(2的32次方)。为了安全,操作系统将内存空间分为两部分,一部分为内核空间,一部分为用户空间。在linux中,将最高的1G字节(虚拟地址为 0xC0000000 到 0xFFFFFFFF),供内核使用, ...

记一次"内存泄露"排查过程

问题的发现 今天发现线上一个应用内存占用非常高,但它的cpu使用率却很低 使用ps命令,可以看到 进程 19793 占用了4.9G的内存,然而它cpu使用率还不到5%,有问题。 # ps -aux | grep 19793 user 19793 1.6 9. ...

对缓存的一些简单理解

本文将介绍缓存出现场景以及使用缓存会带来的问题。 使用缓存要考虑数据一致性、命中率、空间整理、缓存雪崩等问题。 本文还简要的讲解了问题的一些解决方案和思路 ...