java堆外内存泄漏分析排查
JAVA堆外内存分析
文章目录
- JAVA堆外内存分析
- 1.前言
- 2.准备
- 3.具体分析
- 3.1堆外溢出风险判断
- 3.1.1确认java进程号
- 3.1.2查看此java进程的jvm参数
- 3.1.3查看java进程的大概内存占用情况
- 3.1.4检查gc的回收情况
- 3.2内存内容采样分析
- 3.2.1查看内存地址大小分布
- 3.2.2查看可疑内存连续内存地址
- 3.2.3gdb对可疑内存dump
- 3.2.4内存dump查看与分析
- 3.3内存申请追踪分析(最后手段)
- 3.3.1gperftools安装
- 3.3.1.1安装g++
- 3.3.1.2安装libunwind
- 3.3.1.3安装gperftools
- 3.3.1.4使配置生效
- 3.3.1.5设置java运行用户环境变量(临时)
- 4.3.2监控java进程
- 附件1:
1.前言
本文档用于总结记录在遇到可能堆外内存溢出情况下,不重启java进程,如何去判断是否有堆外内存溢出的风险,然后如何去定位风险的来源点,如果有帮助点个小赞。
2.准备
这里准备了一个存在堆外内存溢出java程序,原理使用DirectByteBuffer,申请堆外内存,然后不释放DirectByteBuffer的引用,从而让gc触发后无法正常回收堆外内存。(实际的情况更复杂,这里只总结在黑盒情况下如何去定位到问题来源)
public class Main {private static List LIST = new ArrayList();// 长度100private static byte[] bytes = new byte[100 * 1024 * 1024];static {int length = 100 * 1024 * 1024;for (int i = 0; i < length; i++) {bytes[i] = 1;}}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (true) {String in = scanner.nextLine();try {if (in != null && in.trim().length() != 0) {Integer count = Integer.valueOf(in.trim());// 根据控制台输入的次数去获取堆外内存,每次100Mfor (int i = 0; i < count; i++) {ByteBuffer buffer = ByteBuffer.allocateDirect(100 * 1024 * 1024);buffer.put(bytes);LIST.add(buffer);}}System.out.println("当前100M堆外内存数量:"+LIST.size());} catch (NumberFormatException numberFormatException) {System.out.println("参数数字转换异常");}}}
}
然后在linux内核系统中以如下参数启动:(500m堆内存限制,6g的堆外内存限制)
java -Xmx500m -XX:MaxDirectMemorySize=6144m -jar mem-bug-1.0-SNAPSHOT.jar
设置堆空间为500m,然后使用控制台申请10次100m内存
3.具体分析
3.1堆外溢出风险判断
JAVA内存比较常见的堆内存溢出,这种情况的溢出往往是内存无法通过gc回收,并且不可回收的内存已经触发了-Xmx
的最大堆空间(年轻代+老年代)限制。因此往往可以通过gc情况去判断。
3.1.1确认java进程号
jps
获取当前java进程id为1627
3.1.2查看此java进程的jvm参数
jcmd <pid> VM.flags
通过上面可以分析得知最大堆内存大小为500M
3.1.3查看java进程的大概内存占用情况
top
通过对比数据,发现内存的实际RES占用已经达到了2.1G,远远超出了我们查到的500M的堆空间限制,也就是说至少有1.5G的内存是未知的。
3.1.4检查gc的回收情况
jstat -gc <pid>
注意FGC栏,次数为0,表示当前进程到目前为止都没有发生过fullGc,也就是堆空间从目前来看,远远没有达到500M的。并且MU的元空间大小也远小于top看到的数值,通过这里基本可以判断目前的内存占用和堆空间以及元空间是无关的。补充:实际情况如果可以的话还是先通过堆内存dump日志查,比如这个案例,就可以通过堆dump查看nio的ByteBuffer的情况,查出是ByteBuffer导致的,堆dump命令:jmap -dump:format=b,file=/path/heap.dump (注意,生产环境请在交易流量入口关闭的情况下进行,当dump下的内存较大时会有STW)
3.2内存内容采样分析
通过上面的判断,已经可以确认当前进程申请了大量的未知堆外内存,可以通过如下方式去查看堆外内存的的更具体点的情况:
3.2.1查看内存地址大小分布
pmap -x <pid> | sort -n -k3
从这里可以看到进程占用内存最多的内存地址是:00007ff20efec000,此内存地址大小已经达到了近2G,接下来就是要弄清楚这个近2G的内存占用是如何生成的。
3.2.2查看可疑内存连续内存地址
cat /proc/<pid>/smaps > smaps.dump
通过上面的pmap命令找到00007ff20efec000的内存地址起始位置和结束位置,这里为7ff20efec000-7ff28c000000,获取这个连续位置的作用是为了接下来dump这块内存空间
3.2.3gdb对可疑内存dump
存在风险,会导致进程暂停,在确认没有交易的情况下进行 (没有此命令需要管理安装,centos安装:yum install gdb)
gdb attach <pid>
上图命令进入gdb 控制台
dump memory <要保存的地址> 0x<起始位置> 0x<结束位置>
通过上诉命令,将这块内存dump到了文件memory.dump文件中,接下来可以通过工具查看此内存的内容
3.2.4内存dump查看与分析
:strings -1 <dump文件>
这里通过strings命令去查看字符长度超过1的字符内容,但很明显查看不出什么(因为这里案例的内存内容都是byte1)
hexdump -C <dump文件>
这里通过-C每个字节显示为16进制和相应的ASCII字符的方式查看,第一行是偏移量,通过这里可以看出整个内容的包含大量的01,如果在实际业务中01表示有特殊意义的话,基本可以定位到大概代码内容。从而找到问题所在。
3.3内存申请追踪分析(最后手段)
如果在更复杂的情况下,单凭数据的内容是不一定能查找到原因的,当在内存还在不断增长的情况下,可以尝试通过非java的方式去监控java进程向系统申请内存的情况。原理通过使用自己实现的libtcmalloc.so来替换原有的内存分配函数, 来达到监控内存分配的目的
这里可以使用google的性能分析工具gperftools
的heap-checker
github地址:https://github.com/gperftools/gperftools
但这种方式对性能是有影响的,预估30%的性能损耗,同时可能有其他风险,最好不要在生产环境使用,可以在测试环境复现使用或者分流量给特定的机器使用
3.3.1gperftools安装
3.3.1.1安装g++
如果没有编译会报错:g++: command not found,没有安装的可以通过 :yum -y install gcc gcc-c++ 安装
3.3.1.2安装libunwind
# wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99.tar.gz
# tar -xzvf libunwind-0.99.tar.gz
# cd libunwind-0.99
# ./configure --prefix=/home/common/mem/google-perftools/local/libunwind
# make && make install
–prefix 根据自己情况来指定安装地址
3.3.1.3安装gperftools
# wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.6.1/gperftools-2.6.1.tar.gz
# tar -xzvf gperftools-2.6.1.tar.gz
# cd gperftools-2.6.1
# ./configure --prefix=/home/common/mem/google-perftools/local/perftools
# make && make install
3.3.1.4使配置生效
需要管理员
# vim /etc/ld.so.conf.d/usr_local_lib.conf
新增以下内容按i
/home/common/mem/google-perftools/local/libunwind/lib
/home/common/mem/google-perftools/local/perftools/lib
按esc再:wq! #保存退出
使命令生效,需要管理员
# /sbin/ldconfig
3.3.1.5设置java运行用户环境变量(临时)
export LD_PRELOAD=/home/common/mem/google-perftools/local/perftools/lib/libtcmalloc.so
export HEAPPROFILE=/home/common/mem/dump/
如上,所以的内存申请情况会被输出到/home/common/mem/dump/下(注意要提前创建好这个文件夹),如果是脚本方式启动,可以配置在脚本中.
LD_PRELOAD是Linux系统的一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。
4.3.2监控java进程
经过安装和环境变量设置后就按正常的方式重启java进程即可
如上,进行了一次内存申请,并记录到了指定文件
/home/common/mem/google-perftools/local/perftools/bin/pprof /bin/ls --text .0001.heap
分析内容见**<附件1>**分析出的内容
- 第一列:以 MB 为单位的内存分配情况
- 第四列:所有的进程和它调用函数的内存之和
- 第三列:第二列累加之和,如:第二行的第三列就是第一行的第二列加第二行的第二列
- 第二、第五列:第一列和第四列的百分比表示
接下来的分析实用范围仅用于本次案例
从分析得知,申请内存最多的是os::malloc@905260函数,但这不是java函数,然后0x00007f6c58e156c6也是调用高的,但这里只有函数地址,没有函数名,gdp也查不到函数名映射,暂时没有价值,然后是Unsafe_AllocateMemory,这是C语言的函数,通过jni对unsaf类进行的调用,推测调用的函数是
public native long allocateMemory(long var1);
这里进一步把错误给缩小了,但仍然不能完整的显示调用栈,但可以通过arthas去监控这个函数的调用情况,从而分析出错误入口:
下载arthas地址:https://github.com/alibaba/arthas/tags
运行命令:
java -jar arthas-boot.jar
这里allocateMemory的入口函数是allocateDirect,所以监控此函数,arthas监控java.*开头的包需要进行设定,在arthas控制台执行
options unsafe true
然后设置延长jobs的后台执行时间(默认为一天的时间,但实际可能1天难以复现,这里延长至2天)
options job-timeout 2d
options可选参数 1d, 2h, 3m, 25s,分别代表天、小时、分、秒
选择监控进程后,进入控制台后监控指定函数的调用,并输出到指定文件,同时如下指定后台监控,10485760是一个过滤值,因为allocateDirect函数会指定一个容量大小,而实际应用中调用这个函数的情况比较多,所以加一个10M的过滤(因为这么大的连续地址,不会太小),然后输出到stack.dump中,等待触发
stack java.nio.ByteBuffer allocateDirect 'params[0]>10485760' >> &
在执行后会显示保存目录 cache location
这时可以使用jobs命令查看后台是否有监控此任务
jobs
可以看到目前有一个后台任务在执行。
execution count 是执行次数,从启动开始已经执行了 1次
timeout date 是超时的时间,到这个时间,任务将会自动超时退出
这时可以先退出控制台,等待监听结果:
quit
如果只是退出当前的连接,可以用
quit
或者exit
命令。Attach到目标进程上的arthas还会继续运行,端口会保持开放,下次连接时可以直接连接上。如果想完全退出arthas,可以执行
stop
命令。
监听一段时间后检查监控到的栈内容可以定位到出问题的代码
这时记得使用重新java -jar arthas-boot.jar进入控制台,然后控制台命令退出此监听job(超时后也会自动退出)
kill <job-id>
附件1:
Total: 318.4 MB300.0 94.2% 94.2% 300.0 94.2% os::malloc@90526017.9 5.6% 99.8% 17.9 5.6% os::malloc@9054000.3 0.1% 99.9% 0.3 0.1% readCEN0.1 0.0% 100.0% 0.1 0.0% _GLOBAL__sub_I_eh_alloc.cc0.1 0.0% 100.0% 0.1 0.0% updatewindow0.0 0.0% 100.0% 0.0 0.0% inflateInit2_@b7700.0 0.0% 100.0% 0.0 0.0% __GI__dl_allocate_tls0.0 0.0% 100.0% 0.0 0.0% _dl_new_object0.0 0.0% 100.0% 0.0 0.0% _nl_intern_locale_data0.0 0.0% 100.0% 0.0 0.0% __tzfile_read0.0 0.0% 100.0% 0.0 0.0% __GI___strdup0.0 0.0% 100.0% 0.0 0.0% nss_parse_service_list0.0 0.0% 100.0% 0.0 0.0% _dl_check_map_versions0.0 0.0% 100.0% 0.0 0.0% __new_exitfn0.0 0.0% 100.0% 0.0 0.0% getpwuid0.0 0.0% 100.0% 0.0 0.0% _dl_map_object_deps0.0 0.0% 100.0% 0.3 0.1% ZIP_Put_In_Cache00.0 0.0% 100.0% 0.0 0.0% __GI___nss_database_lookup0.0 0.0% 100.0% 0.0 0.0% JLI_MemAlloc0.0 0.0% 100.0% 0.0 0.0% newEntry.isra.40.0 0.0% 100.0% 0.0 0.0% expand_dynamic_string_token0.0 0.0% 100.0% 0.0 0.0% os::strdup0.0 0.0% 100.0% 0.0 0.0% Java_java_util_zip_Inflater_init0.0 0.0% 100.0% 0.0 0.0% add_to_global0.0 0.0% 100.0% 0.1 0.0% dl_open_worker0.0 0.0% 100.0% 0.0 0.0% _nl_load_locale_from_archive0.0 0.0% 100.0% 0.0 0.0% add_name_to_object.isra.20.0 0.0% 100.0% 0.0 0.0% __tzstring0.0 0.0% 100.0% 0.1 0.0% _dlerror_run0.0 0.0% 100.0% 0.0 0.0% __strdup0.0 0.0% 100.0% 0.0 0.0% __GI___nss_lookup_function0.0 0.0% 100.0% 0.0 0.0% __tsearch0.0 0.0% 100.0% 0.0 0.0% os::realloc0.0 0.0% 100.0% 0.0 0.0% ParseLocale0.0 0.0% 100.0% 0.0 0.0% new_composite_name0.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e10a500.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e115900.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e11a700.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e155420.0 0.0% 100.0% 300.2 94.3% 0x00007f6c58e156c60.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e15c4e0.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e15c5c0.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e171ba0.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e171c80.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e1ec990.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e20b150.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e20b230.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e215d90.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e215e70.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e21d790.0 0.0% 100.0% 0.1 0.0% 0x00007f6c58e21d870.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e220390.0 0.0% 100.0% 0.1 0.0% 0x00007f6c58e22df80.0 0.0% 100.0% 0.1 0.0% 0x00007f6c58e22e060.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e230170.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e230250.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e234280.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e234360.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e259990.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e426b80.0 0.0% 100.0% 0.0 0.0% 0x00007f6c58e433590.0 0.0% 100.0% 0.0 0.0% AbstractICache::initialize0.0 0.0% 100.0% 0.0 0.0% AdapterHandlerLibrary::create_native_wrapper0.0 0.0% 100.0% 0.0 0.0% AdapterHandlerLibrary::get_adapter0.0 0.0% 100.0% 0.0 0.0% AdapterHandlerLibrary::initialize [clone .part.63]0.0 0.0% 100.0% 0.0 0.0% AdapterHandlerLibrary::new_entry0.0 0.0% 100.0% 0.0 0.0% AdaptiveSizePolicy::AdaptiveSizePolicy0.0 0.0% 100.0% 0.0 0.0% AdjoiningGenerations::AdjoiningGenerations0.0 0.0% 100.0% 0.0 0.0% AdvancedThresholdPolicy::method_back_branch_event0.0 0.0% 100.0% 0.0 0.0% AdvancedThresholdPolicy::method_invocation_event0.0 0.0% 100.0% 0.0 0.0% AdvancedThresholdPolicy::submit_compile0.0 0.0% 100.0% 0.0 0.0% AllocateHeap [clone .constprop.292]0.0 0.0% 100.0% 0.4 0.1% Arena::Arena0.0 0.0% 100.0% 0.5 0.2% Arena::grow0.0 0.0% 100.0% 0.0 0.0% Arena::operator new0.0 0.0% 100.0% 0.0 0.0% Arguments::PropertyList_unique_add0.0 0.0% 100.0% 0.0 0.0% Arguments::add_property0.0 0.0% 100.0% 0.0 0.0% Arguments::add_string0.0 0.0% 100.0% 0.0 0.0% Arguments::init_system_properties0.0 0.0% 100.0% 0.0 0.0% Arguments::init_version_specific_system_properties0.0 0.0% 100.0% 0.0 0.0% Arguments::parse0.0 0.0% 100.0% 0.0 0.0% Arguments::parse_each_vm_init_arg0.0 0.0% 100.0% 0.0 0.0% Arguments::parse_vm_init_args0.0 0.0% 100.0% 0.0 0.0% Arguments::process_sun_java_launcher_properties0.0 0.0% 100.0% 0.0 0.0% Arguments::set_mode_flags0.0 0.0% 100.0% 0.0 0.0% Assembler::jcc0.0 0.0% 100.0% 0.0 0.0% Assembler::jmpb0.0 0.0% 100.0% 0.4 0.1% BasicHashtable::new_entry0.0 0.0% 100.0% 0.0 0.0% BytecodeConstantPool::create_constant_pool0.0 0.0% 100.0% 0.0 0.0% Bytecode_loadconstant::resolve_constant0.0 0.0% 100.0% 0.0 0.0% C2Compiler::compile_method0.0 0.0% 100.0% 0.2 0.1% C2Compiler::initialize0.0 0.0% 100.0% 0.2 0.0% CHeapObj::operator new0.0 0.0% 100.0% 0.0 0.0% CHeapObj::operator new [clone .constprop.0]0.0 0.0% 100.0% 0.0 0.0% CHeapObj::operator new [clone .constprop.28]0.0 0.0% 100.0% 0.0 0.0% CHeapObj::operator new [clone .constprop.39]0.0 0.0% 100.0% 0.0 0.0% CHeapObj::operator new [clone .constprop.42]0.0 0.0% 100.0% 0.0 0.0% CHeapObj::operator new[]0.0 0.0% 100.0% 0.0 0.0% CardTableModRefBS::CardTableModRefBS0.0 0.0% 100.0% 0.0 0.0% CardTableModRefBS::initialize0.0 0.0% 100.0% 0.0 0.0% CheckJvmType0.0 0.0% 100.0% 0.0 0.0% Chunk::start_chunk_pool_cleaner_task0.0 0.0% 100.0% 0.5 0.2% ChunkPool::allocate0.0 0.0% 100.0% 0.5 0.2% ClassFileParser::parseClassFile0.0 0.0% 100.0% 0.4 0.1% ClassFileParser::parse_constant_pool0.0 0.0% 100.0% 0.3 0.1% ClassFileParser::parse_constant_pool_entries0.0 0.0% 100.0% 0.0 0.0% ClassFileParser::parse_interfaces0.0 0.0% 100.0% 0.0 0.0% ClassLoader::add_package0.0 0.0% 100.0% 0.3 0.1% ClassLoader::create_class_path_entry0.0 0.0% 100.0% 0.0 0.0% ClassLoader::create_package_info_table0.0 0.0% 100.0% 0.0 0.0% ClassLoader::initialize0.0 0.0% 100.0% 0.8 0.3% ClassLoader::load_classfile0.0 0.0% 100.0% 0.0 0.0% ClassLoader::load_zip_library0.0 0.0% 100.0% 0.0 0.0% ClassLoader::setup_meta_index0.0 0.0% 100.0% 0.0 0.0% ClassLoader::setup_search_path0.0 0.0% 100.0% 0.0 0.0% ClassLoaderData::ClassLoaderData0.0 0.0% 100.0% 0.0 0.0% ClassLoaderData::add_handle0.0 0.0% 100.0% 0.0 0.0% ClassLoaderData::add_to_deallocate_list0.0 0.0% 100.0% 0.0 0.0% ClassLoaderData::metaspace_non_null0.0 0.0% 100.0% 0.0 0.0% ClassLoaderDataGraph::add0.0 0.0% 100.0% 0.0 0.0% ClassLoaderExt::record_result0.0 0.0% 100.0% 0.0 0.0% ClassLoadingService::init0.0 0.0% 100.0% 0.0 0.0% ClassPathZipEntry::ClassPathZipEntry0.0 0.0% 100.0% 0.0 0.0% ClassPathZipEntry::open_stream0.0 0.0% 100.0% 0.0 0.0% ClassVerifier::verify_class0.0 0.0% 100.0% 0.0 0.0% ClassVerifier::verify_exception_handler_table0.0 0.0% 100.0% 0.0 0.0% ClassVerifier::verify_field_instructions0.0 0.0% 100.0% 0.0 0.0% ClassVerifier::verify_method0.0 0.0% 100.0% 0.0 0.0% CodeBlob::CodeBlob0.0 0.0% 100.0% 0.0 0.0% CodeBlob::set_oop_maps [clone .part.5]0.0 0.0% 100.0% 0.0 0.0% CodeBuffer::create_patch_overflow0.0 0.0% 100.0% 0.0 0.0% CodeBuffer::initialize0.0 0.0% 100.0% 0.0 0.0% CodeHeapPool::CodeHeapPool0.0 0.0% 100.0% 0.0 0.0% CollectedHeap::CollectedHeap0.0 0.0% 100.0% 0.0 0.0% CollectorCounters::CollectorCounters0.0 0.0% 100.0% 0.1 0.0% Compilation::Compilation0.0 0.0% 100.0% 0.1 0.0% Compilation::compile_java_method0.0 0.0% 100.0% 0.1 0.0% Compilation::compile_method0.0 0.0% 100.0% 0.1 0.0% Compilation::emit_lir0.0 0.0% 100.0% 0.1 0.0% Compile::Code_Gen0.0 0.0% 100.0% 0.2 0.1% Compile::Compile0.0 0.0% 100.0% 0.1 0.0% Compile::Init0.0 0.0% 100.0% 0.0 0.0% CompileBroker::compilation_init0.0 0.0% 100.0% 0.0 0.0% CompileBroker::compile_method0.0 0.0% 100.0% 0.0 0.0% CompileBroker::compile_method_base0.0 0.0% 100.0% 0.4 0.1% CompileBroker::compiler_thread_loop0.0 0.0% 100.0% 0.0 0.0% CompileBroker::create_compile_task0.0 0.0% 100.0% 0.3 0.1% CompileBroker::init_compiler_runtime0.0 0.0% 100.0% 0.0 0.0% CompileBroker::init_compiler_threads0.0 0.0% 100.0% 0.1 0.0% CompileBroker::invoke_compiler_on_method0.0 0.0% 100.0% 0.0 0.0% CompileBroker::make_compiler_thread0.0 0.0% 100.0% 0.0 0.0% CompiledIC::compute_monomorphic_entry0.0 0.0% 100.0% 0.1 0.0% Compiler::compile_method0.0 0.0% 100.0% 0.0 0.0% Compiler::initialize0.0 0.0% 100.0% 0.0 0.0% CompilerCounters::CompilerCounters [clone .part.79]0.0 0.0% 100.0% 0.0 0.0% CompilerThread::CompilerThread0.0 0.0% 100.0% 0.0 0.0% CompressedClassSpaceCounters::initialize_performance_counters0.0 0.0% 100.0% 0.0 0.0% CompressedKlassSpacePool::CompressedKlassSpacePool0.0 0.0% 100.0% 0.1 0.0% ConstantPool::allocate0.0 0.0% 100.0% 0.0 0.0% ConstantPool::initialize_resolved_references0.0 0.0% 100.0% 0.2 0.1% ConstantPool::klass_at_impl0.0 0.0% 100.0% 0.1 0.0% ConstantPool::klass_ref_at0.0 0.0% 100.0% 0.0 0.0% ConstantPool::resolve_constant_at_impl0.0 0.0% 100.0% 0.0 0.0% ConstantPool::string_at_impl0.0 0.0% 100.0% 0.0 0.0% ConstantPool::uncached_string_at0.0 0.0% 100.0% 0.0 0.0% ContinueInNewThread0.0 0.0% 100.0% 0.0 0.0% ContinueInNewThread00.0 0.0% 100.0% 0.0 0.0% CreateExecutionEnvironment0.0 0.0% 100.0% 0.0 0.0% DCmdArgument::init_value0.0 0.0% 100.0% 0.0 0.0% DCmdParser::add_dcmd_option0.0 0.0% 100.0% 0.0 0.0% DCmdRegistrant::register_dcmds0.0 0.0% 100.0% 0.0 0.0% DCmdRegistrant::register_dcmds_ext0.0 0.0% 100.0% 0.0 0.0% DebugInformationRecorder::DebugInformationRecorder0.0 0.0% 100.0% 0.1 0.0% DefaultMethods::generate_default_methods0.0 0.0% 100.0% 0.0 0.0% Deoptimization::UnrollBlock::UnrollBlock0.0 0.0% 100.0% 0.0 0.0% Deoptimization::fetch_unroll_info_helper0.0 0.0% 100.0% 0.0 0.0% DeoptimizationBlob::create0.0 0.0% 100.0% 0.0 0.0% Dict::Dict0.0 0.0% 100.0% 0.0 0.0% Dictionary::Dictionary0.0 0.0% 100.0% 0.0 0.0% Dictionary::add_klass0.0 0.0% 100.0% 0.0 0.0% Dictionary::add_protection_domain0.0 0.0% 100.0% 0.0 0.0% EdenMutableSpacePool::EdenMutableSpacePool0.0 0.0% 100.0% 0.0 0.0% Events::init [clone .part.7]0.0 0.0% 100.0% 0.0 0.0% ExceptionBlob::create0.0 0.0% 100.0% 0.0 0.0% Exceptions::_throw_args0.0 0.0% 100.0% 0.0 0.0% Exceptions::_throw_msg0.0 0.0% 100.0% 0.0 0.0% Exceptions::new_exception@56e4600.0 0.0% 100.0% 0.0 0.0% Exceptions::new_exception@56e9a00.0 0.0% 100.0% 0.0 0.0% FilteredFieldsMap::initialize0.0 0.0% 100.0% 0.0 0.0% GCAdaptivePolicyCounters::GCAdaptivePolicyCounters0.0 0.0% 100.0% 0.0 0.0% GCMemoryManager::initialize_gc_stat_info0.0 0.0% 100.0% 0.0 0.0% GCPolicyCounters::GCPolicyCounters0.0 0.0% 100.0% 0.0 0.0% GCStatInfo::GCStatInfo0.0 0.0% 100.0% 0.0 0.0% GCStats::GCStats0.0 0.0% 100.0% 0.0 0.0% GCTaskManager::initialize0.0 0.0% 100.0% 0.0 0.0% GCTaskThread::GCTaskThread0.0 0.0% 100.0% 0.0 0.0% GenericGrowableArray::raw_allocate0.0 0.0% 100.0% 0.0 0.0% GetJavaProperties0.0 0.0% 100.0% 0.0 0.0% GetLauncherHelperClass0.0 0.0% 100.0% 0.0 0.0% GlobalTLABStats::GlobalTLABStats0.0 0.0% 100.0% 0.0 0.0% Handle::Handle0.0 0.0% 100.0% 0.0 0.0% HandleMark::operator new0.0 0.0% 100.0% 0.4 0.1% Hashtable::new_entry0.0 0.0% 100.0% 0.0 0.0% ICacheStubGenerator::generate_icache_flush0.0 0.0% 100.0% 0.0 0.0% InlineCacheBuffer_init0.0 0.0% 100.0% 0.0 0.0% InstanceKlass::add_dependent_nmethod0.0 0.0% 100.0% 0.0 0.0% InstanceKlass::call_class_initializer_impl0.0 0.0% 100.0% 0.0 0.0% InstanceKlass::do_local_static_fields_impl0.0 0.0% 100.0% 0.0 0.0% InstanceKlass::get_jmethod_id0.0 0.0% 100.0% 0.0 0.0% InstanceKlass::initialize0.0 0.0% 100.0% 0.0 0.0% InstanceKlass::initialize_impl0.0 0.0% 100.0% 0.0 0.0% InstanceKlass::jni_id_for_impl0.0 0.0% 100.0% 0.0 0.0% InstanceKlass::link_class0.0 0.0% 100.0% 0.0 0.0% InstanceKlass::link_class_impl0.0 0.0% 100.0% 0.0 0.0% InstanceKlass::link_class_or_fail0.0 0.0% 100.0% 0.0 0.0% InstanceKlass::link_methods0.0 0.0% 100.0% 0.0 0.0% InstanceKlass::rewrite_class0.0 0.0% 100.0% 0.0 0.0% InterpreterMacroAssembler::profile_obj_type0.0 0.0% 100.0% 0.0 0.0% InterpreterMacroAssembler::profile_return_type0.0 0.0% 100.0% 0.1 0.0% InterpreterRuntime::_new0.0 0.0% 100.0% 0.0 0.0% InterpreterRuntime::anewarray0.0 0.0% 100.0% 0.0 0.0% InterpreterRuntime::frequency_counter_overflow0.0 0.0% 100.0% 0.0 0.0% InterpreterRuntime::frequency_counter_overflow_inner0.0 0.0% 100.0% 0.0 0.0% InterpreterRuntime::ldc0.0 0.0% 100.0% 0.0 0.0% InterpreterRuntime::prepare_native_call0.0 0.0% 100.0% 0.0 0.0% InterpreterRuntime::quicken_io_cc0.0 0.0% 100.0% 0.0 0.0% InterpreterRuntime::resolve_get_put0.0 0.0% 100.0% 0.1 0.0% InterpreterRuntime::resolve_invoke0.0 0.0% 100.0% 0.0 0.0% InterpreterRuntime::resolve_ldc0.0 0.0% 100.0% 0.0 0.0% Interval::add_range0.0 0.0% 100.0% 0.0 0.0% JDK_Version_init0.0 0.0% 100.0% 0.1 0.0% JLI_Launch0.0 0.0% 100.0% 0.0 0.0% JLI_StringDup0.0 0.0% 100.0% 0.0 0.0% JMXStartRemoteDCmd::num_arguments0.0 0.0% 100.0% 0.0 0.0% JNIHandleBlock::allocate_block0.0 0.0% 100.0% 17.4 5.5% JNI_CreateJavaVM0.0 0.0% 100.0% 0.0 0.0% JNU_CallStaticMethodByName0.0 0.0% 100.0% 0.0 0.0% JNU_NewStringPlatform0.0 0.0% 100.0% 0.0 0.0% JVM_DefineClassWithSource0.0 0.0% 100.0% 0.0 0.0% JVM_DoPrivileged0.0 0.0% 100.0% 0.0 0.0% JVM_FindClassFromBootLoader0.0 0.0% 100.0% 0.0 0.0% JVM_FindClassFromCaller0.0 0.0% 100.0% 0.0 0.0% JVM_FindLoadedClass0.0 0.0% 100.0% 0.1 0.0% JVM_GetClassDeclaredFields0.0 0.0% 100.0% 0.0 0.0% JVM_GetClassDeclaredMethods0.0 0.0% 100.0% 0.0 0.0% JVM_GetStackAccessControlContext0.0 0.0% 100.0% 0.0 0.0% JVM_RawMonitorCreate0.0 0.0% 100.0% 0.0 0.0% JVM_RegisterMethodHandleMethods0.0 0.0% 100.0% 0.0 0.0% JVM_RegisterUnsafeMethods0.0 0.0% 100.0% 0.0 0.0% JVM_StartThread0.0 0.0% 100.0% 0.0 0.0% JavaCallWrapper::JavaCallWrapper0.0 0.0% 100.0% 0.0 0.0% JavaCalls::call_helper0.0 0.0% 100.0% 0.0 0.0% JavaCalls::call_virtual@6858c00.0 0.0% 100.0% 0.0 0.0% JavaCalls::call_virtual@6860a00.0 0.0% 100.0% 17.4 5.5% JavaMain0.0 0.0% 100.0% 0.0 0.0% JavaThread::JavaThread0.0 0.0% 100.0% 0.4 0.1% JavaThread::run0.0 0.0% 100.0% 0.4 0.1% JavaThread::thread_main_inner0.0 0.0% 100.0% 0.0 0.0% Java_java_lang_ClassLoader_defineClass10.0 0.0% 100.0% 0.0 0.0% Java_java_lang_ClassLoader_findBootstrapClass0.0 0.0% 100.0% 0.0 0.0% Java_java_lang_Class_forName00.0 0.0% 100.0% 0.0 0.0% Java_java_lang_System_initProperties0.0 0.0% 100.0% 0.0 0.0% Java_java_lang_System_setErr00.0 0.0% 100.0% 0.0 0.0% Java_java_lang_System_setIn00.0 0.0% 100.0% 0.0 0.0% Java_java_lang_System_setOut00.0 0.0% 100.0% 0.1 0.0% Java_java_util_zip_Inflater_inflateBytes0.0 0.0% 100.0% 0.0 0.0% Java_java_util_zip_ZipFile_getEntry0.0 0.0% 100.0% 0.0 0.0% Java_java_util_zip_ZipFile_open0.0 0.0% 100.0% 0.0 0.0% Jfr::on_vm_init0.0 0.0% 100.0% 0.0 0.0% Jfr::register_jfr_dcmds0.0 0.0% 100.0% 0.0 0.0% JfrActivator::on_vm_init0.0 0.0% 100.0% 0.0 0.0% JfrRuntimeOptions::register_parser_options0.0 0.0% 100.0% 0.0 0.0% Label::add_patch_at0.0 0.0% 100.0% 0.3 0.1% LazyClassPathEntry::open_stream0.0 0.0% 100.0% 0.0 0.0% LinearScan::add_use0.0 0.0% 100.0% 0.0 0.0% LinearScan::assign_reg_num@39f5100.0 0.0% 100.0% 0.0 0.0% LinearScan::assign_reg_num@39f9700.0 0.0% 100.0% 0.0 0.0% LinearScan::build_intervals0.0 0.0% 100.0% 0.0 0.0% LinearScan::compute_debug_info_for_scope0.0 0.0% 100.0% 0.1 0.0% LinearScan::do_linear_scan0.0 0.0% 100.0% 0.0 0.0% LinearScan::sort_intervals_before_allocation0.0 0.0% 100.0% 0.0 0.0% LinkResolver::check_method_loader_constraints0.0 0.0% 100.0% 0.0 0.0% LinkResolver::linktime_resolve_static_method0.0 0.0% 100.0% 0.0 0.0% LinkResolver::linktime_resolve_virtual_method0.0 0.0% 100.0% 0.0 0.0% LinkResolver::resolve_field0.0 0.0% 100.0% 0.0 0.0% LinkResolver::resolve_field_access0.0 0.0% 100.0% 0.0 0.0% LinkResolver::resolve_interface_method0.0 0.0% 100.0% 0.1 0.0% LinkResolver::resolve_invoke0.0 0.0% 100.0% 0.0 0.0% LinkResolver::resolve_invokeinterface0.0 0.0% 100.0% 0.1 0.0% LinkResolver::resolve_invokestatic0.0 0.0% 100.0% 0.0 0.0% LinkResolver::resolve_invokevirtual0.0 0.0% 100.0% 0.0 0.0% LinkResolver::resolve_method0.0 0.0% 100.0% 0.0 0.0% LinkResolver::resolve_static_call0.0 0.0% 100.0% 0.1 0.0% LoadJavaVM0.0 0.0% 100.0% 0.0 0.0% LoaderConstraintTable::LoaderConstraintTable0.0 0.0% 100.0% 0.0 0.0% LoaderConstraintTable::add_entry0.0 0.0% 100.0% 0.0 0.0% MacroAssembler::eden_allocate0.0 0.0% 100.0% 0.0 0.0% Management::initialize0.0 0.0% 100.0% 0.1 0.0% Matcher::Label_Root0.0 0.0% 100.0% 0.0 0.0% Matcher::Matcher0.0 0.0% 100.0% 0.1 0.0% Matcher::match0.0 0.0% 100.0% 0.1 0.0% Matcher::match_tree0.0 0.0% 100.0% 0.1 0.0% Matcher::xform0.0 0.0% 100.0% 0.0 0.0% MemRegion::operator new[]0.0 0.0% 100.0% 0.0 0.0% MemoryManager::get_code_cache_memory_manager0.0 0.0% 100.0% 0.0 0.0% MemoryManager::get_metaspace_memory_manager0.0 0.0% 100.0% 0.0 0.0% MemoryManager::get_psMarkSweep_memory_manager0.0 0.0% 100.0% 0.0 0.0% MemoryManager::get_psScavenge_memory_manager0.0 0.0% 100.0% 0.0 0.0% MemoryPool::MemoryPool0.0 0.0% 100.0% 0.0 0.0% MemoryService::add_code_heap_memory_pool0.0 0.0% 100.0% 0.0 0.0% MemoryService::add_metaspace_memory_pools0.0 0.0% 100.0% 0.0 0.0% MemoryService::add_parallel_scavenge_heap_info0.0 0.0% 100.0% 0.0 0.0% MemoryService::add_psYoung_memory_pool0.0 0.0% 100.0% 0.0 0.0% MemoryService::set_universe_heap0.0 0.0% 100.0% 0.0 0.0% MetaIndex::MetaIndex [clone .part.25]0.0 0.0% 100.0% 0.0 0.0% Metaspace::Metaspace0.0 0.0% 100.0% 0.0 0.0% Metaspace::allocate0.0 0.0% 100.0% 0.0 0.0% Metaspace::allocate_metaspace_compressed_klass_ptrs0.0 0.0% 100.0% 0.0 0.0% Metaspace::deallocate0.0 0.0% 100.0% 0.0 0.0% Metaspace::global_initialize0.0 0.0% 100.0% 0.0 0.0% Metaspace::initialize_class_space0.0 0.0% 100.0% 0.0 0.0% MetaspaceCounters::initialize_performance_counters0.0 0.0% 100.0% 0.0 0.0% MetaspacePool::MetaspacePool0.0 0.0% 100.0% 0.0 0.0% Method::link_method [clone .part.92]0.0 0.0% 100.0% 0.0 0.0% Method::make_jmethod_id0.0 0.0% 100.0% 0.0 0.0% MethodFamily::generate_method_message0.0 0.0% 100.0% 0.0 0.0% MethodHandles::generate_adapters [clone .part.45]0.0 0.0% 100.0% 0.0 0.0% MonitorSupply::reserve0.0 0.0% 100.0% 0.0 0.0% MutableSpace::MutableSpace0.0 0.0% 100.0% 0.0 0.0% NamedThread::NamedThread0.0 0.0% 100.0% 0.0 0.0% NamedThread::set_name0.0 0.0% 100.0% 0.0 0.0% Node::clone0.0 0.0% 100.0% 0.0 0.0% OSContainer::init0.0 0.0% 100.0% 0.0 0.0% OSThread::OSThread0.0 0.0% 100.0% 0.0 0.0% OSThread::pd_initialize0.0 0.0% 100.0% 0.0 0.0% ObjectMonitor::Initialize0.0 0.0% 100.0% 0.0 0.0% ObjectSynchronizer::inflate0.0 0.0% 100.0% 0.0 0.0% ObjectSynchronizer::omAlloc0.0 0.0% 100.0% 0.0 0.0% ObjectSynchronizer::waitUninterruptibly0.0 0.0% 100.0% 0.2 0.1% OptoRuntime::generate0.0 0.0% 100.0% 0.0 0.0% OptoRuntime::generate_exception_blob0.0 0.0% 100.0% 0.2 0.1% OptoRuntime::generate_stub0.0 0.0% 100.0% 0.0 0.0% PSAdaptiveSizePolicy::PSAdaptiveSizePolicy0.0 0.0% 100.0% 0.0 0.0% PSGCAdaptivePolicyCounters::PSGCAdaptivePolicyCounters0.0 0.0% 100.0% 0.0 0.0% PSGenerationCounters::PSGenerationCounters0.0 0.0% 100.0% 0.0 0.0% PSGenerationPool::PSGenerationPool0.0 0.0% 100.0% 0.0 0.0% PSOldGen::initialize0.0 0.0% 100.0% 0.0 0.0% PSOldGen::initialize_work0.0 0.0% 100.0% 0.0 0.0% PSParallelCompact::initialize0.0 0.0% 100.0% 10.6 3.3% PSParallelCompact::post_initialize0.0 0.0% 100.0% 5.0 1.6% PSPromotionManager::PSPromotionManager0.0 0.0% 100.0% 5.0 1.6% PSPromotionManager::initialize0.0 0.0% 100.0% 0.0 0.0% PSScavenge::initialize0.0 0.0% 100.0% 0.0 0.0% PSYoungGen::initialize0.0 0.0% 100.0% 0.0 0.0% PSYoungGen::initialize_work0.0 0.0% 100.0% 5.0 1.6% PaddedArray::create_unfreeable0.0 0.0% 100.0% 5.6 1.8% ParCompactionManager::ParCompactionManager0.0 0.0% 100.0% 10.6 3.3% ParCompactionManager::initialize0.0 0.0% 100.0% 0.0 0.0% ParMarkBitMap::initialize0.0 0.0% 100.0% 0.0 0.0% ParallelCompactData::create_vspace0.0 0.0% 100.0% 0.0 0.0% ParallelScavengeHeap::initialize0.0 0.0% 100.0% 10.6 3.3% ParallelScavengeHeap::post_initialize0.0 0.0% 100.0% 0.0 0.0% ParkEvent::Allocate0.0 0.0% 100.0% 0.0 0.0% Parker::Allocate0.0 0.0% 100.0% 0.0 0.0% PerfData::PerfData0.0 0.0% 100.0% 0.0 0.0% PerfDataList::PerfDataList0.0 0.0% 100.0% 0.0 0.0% PerfDataManager::add_item0.0 0.0% 100.0% 0.0 0.0% PerfDataManager::create_long_constant0.0 0.0% 100.0% 0.0 0.0% PerfDataManager::create_long_counter@95e4500.0 0.0% 100.0% 0.0 0.0% PerfDataManager::create_long_counter@95e9a00.0 0.0% 100.0% 0.0 0.0% PerfDataManager::create_long_variable@95dc300.0 0.0% 100.0% 0.0 0.0% PerfDataManager::create_long_variable@95e1800.0 0.0% 100.0% 0.0 0.0% PerfDataManager::create_string_constant0.0 0.0% 100.0% 0.0 0.0% PerfDataManager::create_string_variable0.0 0.0% 100.0% 0.0 0.0% PerfDataManager::sampled0.0 0.0% 100.0% 0.0 0.0% PerfMemory::create_memory_region0.0 0.0% 100.0% 0.0 0.0% PerfStringConstant::PerfStringConstant0.0 0.0% 100.0% 0.0 0.0% Perf_CreateLong0.0 0.0% 100.0% 0.0 0.0% PlaceholderTable::PlaceholderTable0.0 0.0% 100.0% 0.0 0.0% PlaceholderTable::find_and_add0.0 0.0% 100.0% 0.0 0.0% ProtectionDomainCacheTable::get0.0 0.0% 100.0% 0.0 0.0% ReferenceProcessor::ReferenceProcessor0.0 0.0% 100.0% 0.0 0.0% Reflection::get_parameter_types0.0 0.0% 100.0% 0.1 0.0% Reflection::new_field0.0 0.0% 100.0% 0.0 0.0% Reflection::new_method0.0 0.0% 100.0% 0.1 0.0% Reflection::new_type0.0 0.0% 100.0% 0.0 0.0% ResolutionErrorTable::ResolutionErrorTable0.0 0.0% 100.0% 0.0 0.0% ResourceObj::operator new0.0 0.0% 100.0% 0.0 0.0% Rewriter::Rewriter0.0 0.0% 100.0% 0.0 0.0% Rewriter::rewrite0.0 0.0% 100.0% 0.0 0.0% Runtime1::generate_blob_for0.0 0.0% 100.0% 0.0 0.0% Runtime1::generate_code_for0.0 0.0% 100.0% 0.0 0.0% Runtime1::initialize0.0 0.0% 100.0% 0.0 0.0% RuntimeService::init0.0 0.0% 100.0% 0.0 0.0% RuntimeStub::new_runtime_stub0.0 0.0% 100.0% 0.0 0.0% SafepointBlob::create0.0 0.0% 100.0% 0.0 0.0% ServiceThread::initialize0.0 0.0% 100.0% 0.0 0.0% SetExecname0.0 0.0% 100.0% 0.0 0.0% SetJavaCommandLineProp0.0 0.0% 100.0% 0.0 0.0% SetJavaLauncherPlatformProps0.0 0.0% 100.0% 0.0 0.0% SharedRuntime::generate_deopt_blob0.0 0.0% 100.0% 0.0 0.0% SharedRuntime::generate_handler_blob0.0 0.0% 100.0% 0.0 0.0% SharedRuntime::generate_i2c2i_adapters0.0 0.0% 100.0% 0.0 0.0% SharedRuntime::generate_native_wrapper0.0 0.0% 100.0% 0.0 0.0% SharedRuntime::generate_resolve_blob0.0 0.0% 100.0% 0.0 0.0% SharedRuntime::generate_stubs0.0 0.0% 100.0% 0.0 0.0% SharedRuntime::generate_uncommon_trap_blob0.0 0.0% 100.0% 0.0 0.0% SharedRuntime::resolve_helper0.0 0.0% 100.0% 0.0 0.0% SharedRuntime::resolve_sub_helper0.0 0.0% 100.0% 0.0 0.0% SharedRuntime::resolve_virtual_call_C0.0 0.0% 100.0% 0.0 0.0% SignatureHandlerLibrary::add [clone .part.58]0.0 0.0% 100.0% 0.0 0.0% SignatureHandlerLibrary::initialize [clone .part.53]0.0 0.0% 100.0% 0.0 0.0% SimpleThresholdPolicy::compile [clone .part.24]0.0 0.0% 100.0% 0.0 0.0% SimpleThresholdPolicy::event0.0 0.0% 100.0% 0.0 0.0% SpaceCounters::SpaceCounters0.0 0.0% 100.0% 0.0 0.0% StackMapFrame::pop_stack0.0 0.0% 100.0% 0.0 0.0% StatSampler::create_misc_perfdata0.0 0.0% 100.0% 0.0 0.0% StatSampler::create_sampled_perfdata0.0 0.0% 100.0% 0.0 0.0% StatSampler::create_system_property_instrumentation0.0 0.0% 100.0% 0.0 0.0% StatSampler::engage0.0 0.0% 100.0% 0.0 0.0% StringTable::basic_add0.0 0.0% 100.0% 0.0 0.0% StringTable::intern@a376800.0 0.0% 100.0% 0.0 0.0% StringTable::intern@a378d00.0 0.0% 100.0% 0.0 0.0% StubCodeMark::StubCodeMark0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_aescrypt_decryptBlock0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_aescrypt_encryptBlock0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_all0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_arraycopy_stubs0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_call_stub0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_catch_exception0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_checkcast_copy0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_cipherBlockChaining_decryptAESCrypt_Parallel0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_cipherBlockChaining_encryptAESCrypt0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_conjoint_byte_copy0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_conjoint_int_oop_copy0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_conjoint_long_oop_copy0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_disjoint_byte_copy0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_disjoint_int_oop_copy0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_disjoint_long_oop_copy0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_disjoint_short_copy0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_generic_copy0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_initial0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_math_stubs0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_throw_exception0.0 0.0% 100.0% 0.0 0.0% StubGenerator::generate_verify_oop0.0 0.0% 100.0% 0.0 0.0% StubGenerator_generate0.0 0.0% 100.0% 0.0 0.0% StubRoutines::initialize1 [clone .part.6]0.0 0.0% 100.0% 0.0 0.0% StubRoutines::initialize2 [clone .part.7]0.0 0.0% 100.0% 0.0 0.0% SurvivorMutableSpacePool::SurvivorMutableSpacePool0.0 0.0% 100.0% 0.0 0.0% Symbol::operator new0.0 0.0% 100.0% 0.0 0.0% SymbolPropertyTable::SymbolPropertyTable0.0 0.0% 100.0% 0.3 0.1% SymbolTable::add0.0 0.0% 100.0% 0.0 0.0% SymbolTable::basic_add@a35ad00.0 0.0% 100.0% 0.3 0.1% SymbolTable::basic_add@a368800.0 0.0% 100.0% 0.4 0.1% SymbolTable::initialize_symbols0.0 0.0% 100.0% 0.0 0.0% SymbolTable::lookup0.0 0.0% 100.0% 0.0 0.0% SymbolTable::new_permanent_symbol0.0 0.0% 100.0% 0.0 0.0% SystemDictionary::check_signature_loaders0.0 0.0% 100.0% 0.0 0.0% SystemDictionary::define_instance_class0.0 0.0% 100.0% 0.0 0.0% SystemDictionary::find_or_define_instance_class0.0 0.0% 100.0% 0.0 0.0% SystemDictionary::initialize0.0 0.0% 100.0% 0.5 0.2% SystemDictionary::initialize_preloaded_classes0.0 0.0% 100.0% 0.5 0.2% SystemDictionary::initialize_wk_klasses_until0.0 0.0% 100.0% 0.9 0.3% SystemDictionary::load_instance_class0.0 0.0% 100.0% 0.0 0.0% SystemDictionary::resolve_array_class_or_null0.0 0.0% 100.0% 0.0 0.0% SystemDictionary::resolve_from_stream0.0 0.0% 100.0% 0.9 0.3% SystemDictionary::resolve_instance_class_or_null0.0 0.0% 100.0% 0.0 0.0% SystemDictionary::resolve_or_fail@a453b00.0 0.0% 100.0% 0.3 0.1% SystemDictionary::resolve_or_fail@a457300.0 0.0% 100.0% 0.2 0.0% SystemDictionary::resolve_super_or_fail0.0 0.0% 100.0% 0.0 0.0% SystemDictionary::update_dictionary0.0 0.0% 100.0% 0.0 0.0% SystemDictionary::validate_protection_domain0.0 0.0% 100.0% 0.0 0.0% SystemProperty::SystemProperty0.0 0.0% 100.0% 0.0 0.0% TemplateInterpreter::initialize0.0 0.0% 100.0% 0.0 0.0% TemplateInterpreterGenerator::generate_all0.0 0.0% 100.0% 0.0 0.0% TemplateInterpreterGenerator::generate_return_entry_for0.0 0.0% 100.0% 0.0 0.0% Thread::allocate0.0 0.0% 100.0% 0.0 0.0% ThreadLocalAllocBuffer::startup_initialization0.0 0.0% 100.0% 0.0 0.0% ThreadSafepointState::create0.0 0.0% 100.0% 0.0 0.0% ThreadService::init0.0 0.0% 100.0% 17.4 5.5% Threads::create_vm0.0 0.0% 100.0% 0.0 0.0% TimePartitions::TimePartitions0.0 0.0% 100.0% 0.0 0.0% Type::Initialize0.0 0.0% 100.0% 0.0 0.0% Type::Initialize_shared0.0 0.0% 100.0% 0.0 0.0% TypeArrayKlass::create_klass0.0 0.0% 100.0% 0.0 0.0% UncommonTrapBlob::create0.0 0.0% 100.0% 0.6 0.2% Universe::genesis0.0 0.0% 100.0% 0.1 0.0% Universe::initialize_heap0.0 0.0% 100.0% 300.0 94.2% Unsafe_AllocateMemory0.0 0.0% 100.0% 0.0 0.0% VMThread::create0.0 0.0% 100.0% 0.0 0.0% VMThread::run0.0 0.0% 100.0% 0.0 0.0% VM_Version::get_processor_features0.0 0.0% 100.0% 0.0 0.0% VM_Version::initialize0.0 0.0% 100.0% 0.0 0.0% VM_Version_Ext::generate_cpuid_brand_string_code0.0 0.0% 100.0% 0.0 0.0% VM_Version_Ext::maximum_qualified_cpu_frequency0.0 0.0% 100.0% 0.0 0.0% VM_Version_Ext_StubGenerator::generate_getCPUIDBrandString0.0 0.0% 100.0% 0.0 0.0% VM_Version_StubGenerator::generate_get_cpu_info0.0 0.0% 100.0% 0.0 0.0% VerificationType::is_reference_assignable_from0.0 0.0% 100.0% 0.0 0.0% Verifier::verify0.0 0.0% 100.0% 0.0 0.0% VirtualSpaceList::VirtualSpaceList0.0 0.0% 100.0% 0.0 0.0% VirtualSpaceList::create_new_virtual_space [clone .part.64]0.0 0.0% 100.0% 0.0 0.0% WatcherThread::run0.0 0.0% 100.0% 0.0 0.0% X86FastTime::initialize0.0 0.0% 100.0% 0.0 0.0% ZIP_FindEntry0.0 0.0% 100.0% 0.0 0.0% ZIP_GetEntry20.0 0.0% 100.0% 0.0 0.0% ZIP_Get_From_Cache0.0 0.0% 100.0% 0.3 0.1% ZIP_Open0.0 0.0% 100.0% 0.0 0.0% ZIP_Open_Generic0.0 0.0% 100.0% 0.0 0.0% _GLOBAL__sub_I_c1_LinearScan.cpp0.0 0.0% 100.0% 0.0 0.0% _GLOBAL__sub_I_codeCache.cpp0.0 0.0% 100.0% 0.0 0.0% _GLOBAL__sub_I_decoder.cpp0.0 0.0% 100.0% 0.0 0.0% _GLOBAL__sub_I_diagnosticFramework.cpp0.0 0.0% 100.0% 0.0 0.0% _GLOBAL__sub_I_g1CollectedHeap.cpp0.0 0.0% 100.0% 0.0 0.0% _GLOBAL__sub_I_jfrOptions.cpp0.0 0.0% 100.0% 0.0 0.0% _GLOBAL__sub_I_memoryService.cpp0.0 0.0% 100.0% 0.0 0.0% _GLOBAL__sub_I_metaspace.cpp0.0 0.0% 100.0% 0.0 0.0% _GLOBAL__sub_I_psParallelCompact.cpp0.0 0.0% 100.0% 0.0 0.0% _GLOBAL__sub_I_psScavenge.cpp0.0 0.0% 100.0% 0.0 0.0% _GLOBAL__sub_I_reflectionUtils.cpp0.0 0.0% 100.0% 0.0 0.0% _GLOBAL__sub_I_resourceContextFactory.cpp0.0 0.0% 100.0% 0.0 0.0% __GI___libc_dlopen_mode0.0 0.0% 100.0% 0.0 0.0% __GI___nss_lookup0.0 0.0% 100.0% 0.0 0.0% __GI___nss_passwd_lookup20.0 0.0% 100.0% 0.0 0.0% __GI_setlocale0.0 0.0% 100.0% 17.8 5.6% __clone0.0 0.0% 100.0% 0.0 0.0% __cxa_atexit_internal0.0 0.0% 100.0% 0.1 0.0% __dlopen_check0.0 0.0% 100.0% 0.0 0.0% __getpwuid_r0.0 0.0% 100.0% 0.1 0.0% __libc_start_main0.0 0.0% 100.0% 0.0 0.0% __pthread_create_2_10.0 0.0% 100.0% 0.0 0.0% __tzset0.0 0.0% 100.0% 0.1 0.0% _dl_catch_error0.0 0.0% 100.0% 0.1 0.0% _dl_init_internal0.0 0.0% 100.0% 0.0 0.0% _dl_load_cache_lookup0.0 0.0% 100.0% 0.0 0.0% _dl_map_object0.0 0.0% 100.0% 0.0 0.0% _dl_map_object_from_fd0.0 0.0% 100.0% 0.1 0.0% _dl_open0.0 0.0% 100.0% 0.1 0.0% _init0.0 0.0% 100.0% 0.0 0.0% _nl_find_locale0.0 0.0% 100.0% 0.0 0.0% chunkpool_init0.0 0.0% 100.0% 0.0 0.0% ciEnv::ciEnv0.0 0.0% 100.0% 0.0 0.0% ciEnv::register_method0.0 0.0% 100.0% 0.0 0.0% ciObjectFactory::initialize0.0 0.0% 100.0% 0.0 0.0% codeCache_init0.0 0.0% 100.0% 0.0 0.0% compilationPolicy_init0.0 0.0% 100.0% 0.0 0.0% compileBroker_init0.0 0.0% 100.0% 0.0 0.0% create_defaults_and_exceptions0.0 0.0% 100.0% 0.1 0.0% dlopen_doit0.0 0.0% 100.0% 0.0 0.0% do_dlopen0.0 0.0% 100.0% 0.0 0.0% find_class_from_class_loader0.0 0.0% 100.0% 0.0 0.0% get_class_declared_methods_helper0.0 0.0% 100.0% 0.0 0.0% get_method_id [clone .constprop.107]0.0 0.0% 100.0% 0.0 0.0% get_shared_archive_path0.0 0.0% 100.0% 0.0 0.0% get_sharedmem_filename0.0 0.0% 100.0% 0.1 0.0% inflate@b9300.0 0.0% 100.0% 17.3 5.4% init_globals0.0 0.0% 100.0% 0.0 0.0% initializeDirectBufferSupport [clone .part.72]0.0 0.0% 100.0% 0.0 0.0% initializeEncoding0.0 0.0% 100.0% 0.0 0.0% initialize_class0.0 0.0% 100.0% 0.0 0.0% initialize_static_field0.0 0.0% 100.0% 0.0 0.0% interpreter_init0.0 0.0% 100.0% 0.0 0.0% java_lang_Class::create_mirror0.0 0.0% 100.0% 0.0 0.0% java_lang_reflect_Field::create0.0 0.0% 100.0% 0.0 0.0% java_security_AccessControlContext::create0.0 0.0% 100.0% 0.4 0.1% java_start0.0 0.0% 100.0% 0.0 0.0% jni_FindClass0.0 0.0% 100.0% 0.0 0.0% jni_GetMethodID0.0 0.0% 100.0% 0.0 0.0% jni_GetStaticFieldID0.0 0.0% 100.0% 0.0 0.0% jni_GetStaticMethodID0.0 0.0% 100.0% 0.0 0.0% jni_NewDirectByteBuffer0.0 0.0% 100.0% 0.0 0.0% jni_RegisterNatives0.0 0.0% 100.0% 0.0 0.0% jni_handles_init0.0 0.0% 100.0% 0.0 0.0% jvm_define_class_common0.0 0.0% 100.0% 0.0 0.0% lookupDirectBufferClasses0.0 0.0% 100.0% 0.0 0.0% lookupOne0.0 0.0% 100.0% 0.0 0.0% management_init0.0 0.0% 100.0% 0.0 0.0% marksweep_init0.0 0.0% 100.0% 0.0 0.0% mutex_init0.0 0.0% 100.0% 0.0 0.0% nmethod::new_native_nmethod0.0 0.0% 100.0% 0.0 0.0% nmethod::new_nmethod0.0 0.0% 100.0% 0.0 0.0% nmethod::nmethod0.0 0.0% 100.0% 0.0 0.0% openaux0.0 0.0% 100.0% 0.0 0.0% os::Linux::clock_init0.0 0.0% 100.0% 0.0 0.0% os::Linux::libpthread_init0.0 0.0% 100.0% 0.0 0.0% os::create_main_thread0.0 0.0% 100.0% 0.0 0.0% os::create_thread0.0 0.0% 100.0% 0.0 0.0% os::dll_load0.0 0.0% 100.0% 0.0 0.0% os::format_boot_path0.0 0.0% 100.0% 0.0 0.0% os::init0.0 0.0% 100.0% 0.0 0.0% os::init_20.0 0.0% 100.0% 0.0 0.0% os::init_ft0.0 0.0% 100.0% 0.0 0.0% os::init_globals_ext0.0 0.0% 100.0% 0.0 0.0% os::init_system_properties_values0.0 0.0% 100.0% 0.0 0.0% os::native_java_library0.0 0.0% 100.0% 0.0 0.0% os::set_boot_path0.0 0.0% 100.0% 0.0 0.0% os::signal_init0.0 0.0% 100.0% 0.0 0.0% ostream_init0.0 0.0% 100.0% 0.0 0.0% perfMemory_init0.0 0.0% 100.0% 0.0 0.0% referenceProcessor_init0.0 0.0% 100.0% 0.0 0.0% register_natives [clone .isra.0]0.0 0.0% 100.0% 17.8 5.6% start_thread0.0 0.0% 100.0% 0.0 0.0% thread_entry0.0 0.0% 100.0% 0.0 0.0% tzset_internal0.0 0.0% 100.0% 0.6 0.2% universe2_init0.0 0.0% 100.0% 1.0 0.3% universe_init0.0 0.0% 100.0% 15.6 4.9% universe_post_init0.0 0.0% 100.0% 0.0 0.0% vframeArray::allocate0.0 0.0% 100.0% 0.0 0.0% vmSymbols::initialize0.0 0.0% 100.0% 0.0 0.0% vm_init_globals
java堆外内存泄漏分析排查相关推荐
- Java堆外内存泄露分析
查看堆内存占用正常,jvm垃圾回收也没有异常.而top出来显示java占用内存是几个G,那么可能想到了是堆外内存泄漏. 需要安装google-perftools工具进行分析 1.先安装g++ 不然编译 ...
- 一次完整的JVM堆外内存泄漏故障排查记录
前言 记录一次线上JVM堆外内存泄漏问题的排查过程与思路,其中夹带一些JVM内存分配机制以及常用的JVM问题排查指令和工具分享,希望对大家有所帮助. 在整个排查过程中,我也走了不少弯路,但是在文章中我 ...
- Java面试题,Java堆外内存泄漏排查
零基础如何学习Java? 首先,你要明白一点,Java入门不难! 无论你是从事哪个行业,兴趣一定是最好的老师,也是你学习的动力. 学习方式1:自学 自学模式其实我个人不建议绝大部分的人选择,因为自学是 ...
- java nio 李林峰_Netty堆外内存泄漏排查,这一篇全讲清楚了
上篇文章介绍了Netty内存模型原理,由于Netty在使用不当会导致堆外内存泄漏,网上关于这方面的资料比较少,所以写下这篇文章,专门介绍排查Netty堆外内存相关的知识点,诊断工具,以及排查思路提供参 ...
- haddler处理队列 netty_Netty堆外内存泄漏排查,这一篇全讲清楚了
上篇文章介绍了Netty内存模型原理,由于Netty在使用不当会导致堆外内存泄漏,网上关于这方面的资料比较少,所以写下这篇文章,专门介绍排查Netty堆外内存相关的知识点,诊断工具,以及排查思路提供参 ...
- Cassandra Java堆外内存排查经历全记录
背景 最近准备上线cassandra这个产品,同事在做一些小规格ECS(8G)的压测.压测时候比较容易触发OOM Killer,把cassandra进程干掉.问题是8G这个规格我配置的heap(Xmx ...
- 记一次Cassandra Java堆外内存排查经历
背景 最近准备上线cassandra这个产品,同事在做一些小规格ECS(8G)的压测.压测时候比较容易触发OOM Killer,把cassandra进程干掉.问题是8G这个规格我配置的heap(Xmx ...
- java 堆外内存 查看_超干货!Cassandra Java堆外内存排查经历全记录
背景 最近准备上线cassandra这个产品,同事在做一些小规格ECS(8G)的压测.压测时候比较容易触发OOM Killer,把cassandra进程干掉.问题是8G这个规格我配置的heap(Xmx ...
- 一次堆外内存泄露的排查过程
转载自 一次堆外内存泄露的排查过程 最近在做一个基于 websocket 的长连中间件,服务端使用实现了 socket.io 协议(基于websocket协议,提供长轮询降级能力) 的 netty- ...
最新文章
- RedHat Enterprise Linux 5 安装GCC过程
- android调用系统设置
- boost::hana::is_embedded用法的测试程序
- 从零点五开始用Unity做半个2D战棋小游戏(一)
- STL-bitset源码解析
- [译][Tkinter 教程14] menu 菜单
- c语言管理系统的数据存放,编的学生成绩管理系统 从文件中读取保存数据总会多读入一组乱码数据...
- solidity modifier函数修改器 智能合约开发知识浅学(三)
- 用wxpython做ui_wxPython - 如何强制UI刷新?
- linux mono运行c 1,不装mono,你的.NET程序照样可以在Linux上运行!
- html text-decoration,如何使用text-decoration
- moba的m是什么意思_moba游戏是什么
- 40页PPT,让你了解智能物联网应用场景需求与未来发展趋势
- word下载哪一个比较好
- 可以玩所有游戏的计算机配置,什么样的电脑配置才可以玩各种3A巨作游戏?
- 免费OFD文件在线转PDF
- 谷歌浏览器打开CSDN老是弹出安卓网页
- 二分法实例应用(一)
- 如何微调Segment Anything Model
- Linux 命令小记
热门文章
- 合并分区怎么操作?图文详解
- 软件开发及过程管理——理解高内聚-低耦合
- 一朝创业,十年奋战,和信VENGD 4.0让终端不再是难题!
- MySQL常用的统计语句
- 爱河许云上计算机乐谱,爱河钢琴谱钢琴简谱 数字谱 钢琴双手简谱.pdf
- python iteritems函数_Python six.iteritems方法代码示例
- linux多线程服务端编程读书笔记——第三章
- 2019年1月8日LTC行情分析策略及操作建议(第二期附图)
- 618好用的、值得信赖的学习护眼灯有哪些?眼医生推荐的的五个护眼品牌
- 【JY】《公路桥梁抗震性能评价细则》宣贯PPT