JVM命令行工具和并发情况下内存分配策略

一、并发情况下内存分配

    1、CAS配上失败重试保证保证线程安全

    2、把内存分配的动作按照线程划分在不同的空间,即为每个线程在Java堆预先分配一小块内存,称为本地线程分配缓冲 (TLAB)。

二、对象头存放的信息

       类的元数据指针、对象的哈希码、对象的GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等

三、对象的访问定位

        1、句柄访问

        2、直接指针

 四、JVM命令行工具

        1、jps: 显示系统内所有HotSpot虚拟机进程

        2、jstat: 用于监视虚拟机各种运行状态信息,它可以显示本地或远程虚拟机进程中的类加载、内存、垃圾收集、JIT编译等运行数据

        3、jinfo:    实时查看和调整虚拟机各项参数

        4、jmap: 用于生成对转储快照

        5、jhat:与jmap联合使用,用于分析对转储快照

        6、jstack:   用于生成虚拟机当前时刻的线程快照。线程快照就是当前虚拟机中每一个线程正在执行的方法的堆栈集合,生成线程快照的目的就是定位线程出现长时间停顿的原因。

猜你喜欢

转载自blog.csdn.net/faker_wang/article/details/80940680