1、解析命令行选项。启动器会直接处理一些命令行选项,例如-client或-server,它们决定加载哪个JIT编译器,其他参数则传给HotSpot VM;2、设置堆的大小和JIT编译器。如果命令行没有明确设置堆的大小和JIT编译器(client或server),启动器则通过自动化有进行设置。自动优化的默认设定因系统配置和操作系统而有所不同;3、设定环境变量,例如LD_LIBRARY_PATH和CL
1.对象不用时最好显示置为NULL一般情况,为NULL的对象都会被作为垃圾处理,所以将不用的对象置为NULL,有利于GC收集器判断垃圾,从而提高了GC的效率2.尽量少用System.gc()此函数建议JVM进行主GC,会增加主GC的频率,增加了间接性停顿的次数。3.尽量少使用静态变量静态变量属于全局变量,不会被GC回收,它们会一直占用内存4.尽量使用StringBuffer,而不使用String来
1.首先查看类的符号引用,看是否已经在常量池中,在说明已经加载过了,不在的话需要进行类的加载、验证、准备、解析、初始化的过程。2.上述过程执行完毕以后,又将Student加载进内存,也就是存储Student.class的字段信息和方法信息,存储到方法区中;字段信息:存放类中声明的每一个字段的信息,包括字段的名、类型、修饰符。方法信息:类中声明的每一个方法的信息,包括方法名、返回值类型、参数类型、修
堆和方法区是所有线程共享的资源,其中堆是进程中最大的一块内存,主要用于存放新创建的对象(所有对象都在这里分配内存),方法区主要用于存放已被加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
JVM调优程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpu load过高、请求延迟、tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高,每次垃圾收集清理掉的垃圾数据越来越低)、内存溢出导致系统奔溃,因此需要对JVM进行调优,使得程序在正常运行的前提下,获得更高的用户体验和运行效率。故障排查在java应用中,系统内存通常会被分为几块不同的空间
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号