随笔分类 -  jvm

上一页 1 2 3 下一页

java object多大 java对象内存模型 数组有多长(六)identityhashcode究竟是什么?内存地址?
摘要:https://cloud.tencent.com/developer/article/1622192 java默认的hashcode方法到底得到的是什么? 在hashCode方法注释中,说hashCode一般是通过对象内存地址映射过来的。 As much as is reasonably prac 阅读全文

posted @ 2024-06-18 13:12 silyvin 阅读(27) 评论(0) 推荐(0)

java object多大 java对象内存模型 数组有多长(五)identityhashcode会变吗
摘要:1 https://stackoverflow.com/questions/7207302/if-javas-garbage-collector-moves-objects-what-is-object-hashcode-and-system-id I've often heard that the 阅读全文

posted @ 2024-06-17 17:43 silyvin 阅读(13) 评论(0) 推荐(0)

java object多大 java对象内存模型 数组有多长(四)已经访问的对象记录优化 布隆过滤器
摘要:800*0.8*8*1400w = 66.76GB 光存那些Double指针花了那么多 优化方案: 1 Double(Long Integer)类型除了0,默认未访问,允许重复计算 String类型length超过50默认未访问,允许重复计算 2 借鉴 ip白名单算法(pdd活跃用户) 存对象地址h 阅读全文

posted @ 2024-06-17 11:27 silyvin 阅读(16) 评论(0) 推荐(0)

如何定义一片代码的内存使用量
摘要:time before GC(MB) after GC(MB) 19:23:23 2807442 2663288 19:24:04 2696290 2575996 old GC 19:31:06 3233018 2553234 19:35:02 3189076 2605652 19:37:34 30 阅读全文

posted @ 2024-06-12 15:07 silyvin 阅读(23) 评论(0) 推荐(0)

java object多大 java对象内存模型 数组有多长(三)各jvm环境
摘要:在之前的程序中,考虑到hotspot java11 Unsafe包的不可达(最近发现zing 11能访问),搞出来手动定义的 但并没有意义,手动定义通常基于hotspot,并不能适用用于其它jvm,unsafe里的偏移或reference信息本身就是jvm具体实现的,手动定义相当于脱离了真实线上环境 阅读全文

posted @ 2024-06-01 22:46 silyvin 阅读(13) 评论(0) 推荐(0)

histo浅大小
摘要:btrace sizeof 与jmap -histo 都是shallow size 阅读全文

posted @ 2024-05-15 15:04 silyvin 阅读(11) 评论(0) 推荐(0)

指针压缩
摘要:1 查看 $ java -XX:+PrintCommandLineFlags -version -XX:-UseCompressedClassPointers -XX:-UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UseCompres 阅读全文

posted @ 2024-05-15 14:10 silyvin 阅读(61) 评论(0) 推荐(0)

intern
摘要:9 static void test01(){ 10 String s1 = new String("1")+new String("23"); 11 s1.intern(); 12 String s2 = "123"; 13 System.out.println( s1 == s2);//true 阅读全文

posted @ 2024-05-10 14:34 silyvin 阅读(113) 评论(0) 推荐(0)

使用MAT时的Shallow Size和 Retained Size的区别(二)
摘要:理解VisualVM中的保留大小(Retained Size) https://www.jianshu.com/p/aaddf00a1d83 Retained size of an object is its shallow size plus the shallow sizes of the ob 阅读全文

posted @ 2023-04-04 16:39 silyvin 阅读(183) 评论(0) 推荐(0)

java object多大 java对象内存模型 数组有多长(二)偏移
摘要:1 使用http://www.javamex.com/中提供的classmexer.jar来计算对象的大小。 2 org.openjdk.jol.info.ClassLayout Shallow org.openjdk.jol.info.GraphicLayout retained 3 自写 htt 阅读全文

posted @ 2023-03-30 10:53 silyvin 阅读(65) 评论(0) 推荐(0)

java 获取内存信息(include direct buffer)
摘要:I am creating a scheduled executor to read the memory usage of the JVM. I have come across two ways to get memory statistics in a running JVM - Runtim 阅读全文

posted @ 2023-03-15 18:07 silyvin 阅读(217) 评论(0) 推荐(0)

三目运算符与字节码阅读
摘要:1 https://blog.csdn.net/weixin_39965161/article/details/112650387 2 package agent; /** * Created by mac on 2021/4/21. */ import jdk.internal.org.objec 阅读全文

posted @ 2021-04-21 23:00 silyvin 阅读(111) 评论(0) 推荐(0)

使用MAT时的Shallow Size和 Retained Size的区别
摘要:https://blog.csdn.net/e5945/article/details/7708253 Shallow Size对象自身占用的内存大小,不包括它引用的对象。针对非数组类型的对象,它的大小就是对象与它所有的成员变量大小的总和。当然这里面还会包括一些java语言特性的数据存储单元。针对数 阅读全文

posted @ 2020-05-04 00:48 silyvin 阅读(793) 评论(0) 推荐(0)

栈帧,for与whiletrue(yet)
摘要:1 当前栈帧(Current Stack Frame) 一个线程中的方法调用链可能会很长,很多方法都同时处于执行状态。对于执行引擎来说,在活动线程中,只有位于栈顶的栈帧才是最有效的,称为当前栈帧(Current Stack Frame),与这个栈帧相关联的方法称为当前方法。执行引擎运行的所有的字节码 阅读全文

posted @ 2020-01-06 11:30 silyvin 阅读(210) 评论(0) 推荐(0)

java object多大 java对象内存模型 数组有多长
摘要:https://www.cnblogs.com/maxigang/p/9040088.html https://www.jianshu.com/p/91e398d5d17c 对象结构 在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance 阅读全文

posted @ 2019-10-22 17:30 silyvin 阅读(3058) 评论(0) 推荐(0)

方法区 永久代 元空间 常量池
摘要:方法区:jvm标准 永久代:hotspot实现 1.7 元空间:hotspot实现 1.8 首先,metaspace默认的最大值是整个机器的物理内存大小,所以metaspace不断扩张会导致java程序侵占系统可用内存,最终系统没有可用的内存;而永久区则有固定的默认大小,不会扩张到整个机器的可用内存 阅读全文

posted @ 2019-09-18 17:03 silyvin 阅读(573) 评论(0) 推荐(0)

伪共享
摘要:1 引用自:https://www.cnblogs.com/diegodu/p/9340243.html 2.7 Cache Line 伪共享 Cache Line 伪共享问题,就是由多个 CPU 上的多个线程同时修改自己的变量引发的。这些变量表面上是不同的变量,但是实际上却存储在同一条 Cache 阅读全文

posted @ 2019-07-13 13:19 silyvin 阅读(331) 评论(0) 推荐(0)

gc收集器选型
摘要:https://www.cnblogs.com/parryyang/p/5750146.html JVM根据需求不同提供了三种选择:串行收集器、并行收集器、并发收集器 并行:指多条垃圾收集器线程并行工作,但此时仍是“Stop The World”状态,即用户线程处于等待状态; 并发:指用户线程和垃圾 阅读全文

posted @ 2019-01-11 10:14 silyvin 阅读(543) 评论(0) 推荐(0)

jvm相关总结
摘要:jvm常用参数 -XX:+PrintGCDetails -XX:+PrintGC -XX:+PrintGCTimeStamps -Xloggc:file -XX:+PrintHeapAtGC -XX:+HeapDumpOnOutOfMemoryError -XX:+HeapDumpBeforeFul 阅读全文

posted @ 2018-10-24 16:52 silyvin 阅读(616) 评论(0) 推荐(0)

引用计数和回收池 & java=null 的必要性
摘要:java 使用的是垃圾回收和可达性分析 oc 和 cocos2d-x 使用引用计数与回收池 netty的bytebuf由于使用的直接内存,也使用引用计数 交谈中提到了显式置为null,http://chenjingbo.iteye.com/blog/1980908 这篇文章有非常好的论述实践: 且文 阅读全文

posted @ 2018-10-23 15:17 silyvin 阅读(503) 评论(0) 推荐(0)

上一页 1 2 3 下一页