初识jvm
来源:互联网 发布:mac地址恢复校园网 编辑:程序博客网 时间:2024/04/29 17:04
HotSpot VM的组件
- VM运行时(Runtime),
- JIT编译器(compiler),分为client和server
- 内存管理器(Memory Manager),一共有四个:Serial,Throughput,CMS,G1
32位vm内存地址空间的限制为4G,这是32位操作系统能操作的最大内存,实际上java堆得大小进一步受限于操作系统。
64位vm增大了java堆,但由于HotSpot VM的java对象表示(称为普通对象指针,Ordinary Object Pointers,oops)的长度从32位变成了64位导致CPU高速缓存行(CPU Cache Line)中可用的oops变少从而降低了效率,在jdk 6以后HotSpot VM添加了压缩指针(Compressed oops, -XX:+UseCompressedOops开启)特性,通过对齐(Alignment)还有偏移量(Offset)将64位指针压缩成32位,从而改善性能。
java运行的命令行选项:
1. 标准选项(Standard Option)要求所有java虚拟机都必须实现的选项,在发行版之间保持未定,但可能在后续的发行版废除
2. 非标准选项(-X为前缀),不保证也不强制所有的jvm都必须实现,也可以未经通知就在jdk发行版之间发生更改
3. 非问稳定选项(-XX为前缀)通常是为了特定需要而对JVM运行进行校正,并且可能需要有系统配置参数的访问权限
命令行选项勇于控制HotSpot VM内部变量,每个变量都有类型和默认值,对于布尔类型的非稳定选项来说,可以通过+(true)-(false)来控制这些变量,比如-XX:+UseCompressedOops代表开启压缩指针;有些可以赋值的非稳定变量,形如-XX:OptionName=,几乎所有变量为整数的值都可以后缀为k,m,g表示千,百万,十亿。当然还有些不符合这些规则,比如没有分割(形如:,=一类)标记。
java命令最常用的几个选项:
1. 指定垃圾收集器:比如: -XX:+UseSerialGC
2. JIT编译器:-client or -server
3. java堆的初始值和最大值,-Xms4m(等同于-XX:InitialHeapSize=4m),-Xmx64m(等同于-XX:MaxHeapSize=64m)
可以通过-XX:+PrintCommandLineFlags来打印当前采用的自动,手动设置的参数选项
- 初识JVM
- JVM初识
- 初识jvm
- 初识JVM
- 初识JVM
- 初识JVM
- 初识JVM
- 初识JVM
- JVM学习(初识JVM)
- 【JVM】初识JVM
- 初识JVM-JVM运行机制(1)
- 初识JVM-JVM运行机制(2)
- 初识JVM byte code
- 初识JVM byte code
- jvm的初识
- 初识JVM byte code
- 初识JVM垃圾回收
- 初识JVM(1)
- 第五周——静态成员运用——时间类
- Manacher算法--O(n)最长回文子串算法
- cocoapods安装Afnetworking后,无法include<AFNetworking/AFNetworking.h>
- 修炼人生
- hdu 4289 利用最大流思想求图的最小割
- 初识jvm
- qsort函数
- Android性能优化
- footer位置始终最低处的做法之一
- Rutime 类 System类常用方法
- iOS学习之iOS沙盒(sandbox)机制和文件操作(二)
- shell实现类矩阵格式数据统计及输出(hive环境下数据的过程化处理)
- Google Play Services学习
- poj 2289 Jamie's Contact Groups (二分图多重匹配)