咋回事?25%的CPU占用竟然把服务干趴了?
揭秘:为什么四分之一的 CPU 占用也能拖垮服务?
作者:arthinking
|
发表于 2024-10-13
|
分类于  JVM
咋回事?25%的CPU占用竟然把服务干趴了?
一个Java对象占用多少内存?
基于前面我们介绍的JVM对象内存布局,可以知道,一个对象占用的内存大小受操作系统和是否开启压缩指针的影响。为了方便推算对象的占用内存大小,帅旋画了一般比较直观的图:
作者:帅旋
|
发表于 2024-09-19
|
分类于  JVM
一个Java对象占用多少内存?
开启指针压缩为什么还能支持32G内存寻址?
大家好,我是帅旋,今天来聊聊压缩指针的问题。
作者:帅旋
|
发表于 2024-09-19
|
分类于  JVM
开启指针压缩为什么还能支持32G内存寻址?
为什么Mark Word中的指针是30位?
在Java虚拟机(JVM)中,特别是在HotSpot实现里,对象头的Mark Word部分用于存储多种数据,其中包括锁信息、哈希码、GC年龄等。当对象被锁定时,例如在轻量级锁定状态下,Mark Word中会包含一个指针,指向线程栈上的锁记录(Lock Record)。这种指针不需要使用完整的32位来表示。
作者:帅旋
|
发表于 2024-09-19
|
分类于  JVM
为什么Mark Word中的指针是30位?
说说JVM对象的内存布局?
JVM对象内存布局如下图所示:
作者:帅旋
|
发表于 2024-08-30
|
分类于  JVM
说说JVM对象的内存布局?
JVM如何保证创建对象线程安全?
在多线程情况下,内存分配时,JVM可能采用CAS配合失败重试、本地线程分配缓冲(TLAB)等机制来保证更新操作的原子性,防止多个线程同时分配内存造成的数据冲突。
作者:帅旋
|
发表于 2024-08-30
|
分类于  JVM
JVM如何保证创建对象线程安全?
JVM内分配有什么策略?
内存分配的方式有“指针碰撞”(Bump the Pointer)和空闲列表法。
作者:帅旋
|
发表于 2024-08-30
|
分类于  JVM
JVM内分配有什么策略?
说说Java对象的创建过程
在JVM中,当执行到new指令时,首先会检查这条指令的参数是否可以在常量池中找到一个类的符号引用,并检查这个符号引用代表的类是否已经被加载、链接(验证、准备和解析)、初始化。如果没有,JVM会先执行相应的类加载过程。
作者:帅旋
|
发表于 2024-08-29
|
分类于  JVM
说说Java对象的创建过程
元空间会触发垃圾回收吗?
元空间(Metaspace)的垃圾回收机制与传统的Java堆区域的垃圾回收有所不同。元空间主要用于存储类的元数据、常量池、方法数据等,这些数据通常与类加载器有关。当类加载器不再使用时(即类加载器实例本身被回收时),由该加载器加载的类和相关的元数据也会被认为是可回收的。
作者:帅旋
|
发表于 2024-08-29
|
分类于  JVM
元空间会触发垃圾回收吗?
JVM为什么不使用永久带了?
JVM(Java虚拟机)在早期版本中使用了所谓的"永久代"(PermGen),这是一个专门用于存放Java类元数据的区域,包括类定义、静态变量、常量等信息。然而,随着JVM的发展,永久代已经被废弃,取而代之的是一个新的内存区域——元空间(Metaspace)。
作者:帅旋
|
发表于 2024-08-29
|
分类于  JVM
JVM为什么不使用永久带了?
1236
×
IT宅

关注公众号及时获取网站内容更新。

请帅旋喝一杯咖啡

咖啡=电量,给帅旋充杯咖啡,他会满电写代码!

IT宅

关注公众号及时获取网站内容更新。