java堆外内存泄漏分析排查

JAVA堆外内存分析

1.前言

本文档用于总结记录在遇到可能堆外内存溢出情况下,不重启java进程,如何去判断是否有堆外内存溢出的风险,然后如何去定位风险的来源点,如果有帮助点个小赞。

2.准备

这里准备了一个存在堆外内存溢出java程序,原理使用DirectByteBuffer,申请堆外内存,然后不释放DirectByteBuffer的引用,从而让gc触发后无法正常回收堆外内存。(实际的情况更复杂,这里只总结在黑盒情况下如何去定位到问题来源)

public class Main {
    private static List LIST = new ArrayList();
    // 长度100
    private 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());
                    // 根据控制台输入的次数去获取堆外内存,每次100M
                    for (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 MB
   300.0  94.2%  94.2%    300.0  94.2% os::malloc@905260
    17.9   5.6%  99.8%     17.9   5.6% os::malloc@905400
     0.3   0.1%  99.9%      0.3   0.1% readCEN
     0.1   0.0% 100.0%      0.1   0.0% _GLOBAL__sub_I_eh_alloc.cc
     0.1   0.0% 100.0%      0.1   0.0% updatewindow
     0.0   0.0% 100.0%      0.0   0.0% inflateInit2_@b770
     0.0   0.0% 100.0%      0.0   0.0% __GI__dl_allocate_tls
     0.0   0.0% 100.0%      0.0   0.0% _dl_new_object
     0.0   0.0% 100.0%      0.0   0.0% _nl_intern_locale_data
     0.0   0.0% 100.0%      0.0   0.0% __tzfile_read
     0.0   0.0% 100.0%      0.0   0.0% __GI___strdup
     0.0   0.0% 100.0%      0.0   0.0% nss_parse_service_list
     0.0   0.0% 100.0%      0.0   0.0% _dl_check_map_versions
     0.0   0.0% 100.0%      0.0   0.0% __new_exitfn
     0.0   0.0% 100.0%      0.0   0.0% getpwuid
     0.0   0.0% 100.0%      0.0   0.0% _dl_map_object_deps
     0.0   0.0% 100.0%      0.3   0.1% ZIP_Put_In_Cache0
     0.0   0.0% 100.0%      0.0   0.0% __GI___nss_database_lookup
     0.0   0.0% 100.0%      0.0   0.0% JLI_MemAlloc
     0.0   0.0% 100.0%      0.0   0.0% newEntry.isra.4
     0.0   0.0% 100.0%      0.0   0.0% expand_dynamic_string_token
     0.0   0.0% 100.0%      0.0   0.0% os::strdup
     0.0   0.0% 100.0%      0.0   0.0% Java_java_util_zip_Inflater_init
     0.0   0.0% 100.0%      0.0   0.0% add_to_global
     0.0   0.0% 100.0%      0.1   0.0% dl_open_worker
     0.0   0.0% 100.0%      0.0   0.0% _nl_load_locale_from_archive
     0.0   0.0% 100.0%      0.0   0.0% add_name_to_object.isra.2
     0.0   0.0% 100.0%      0.0   0.0% __tzstring
     0.0   0.0% 100.0%      0.1   0.0% _dlerror_run
     0.0   0.0% 100.0%      0.0   0.0% __strdup
     0.0   0.0% 100.0%      0.0   0.0% __GI___nss_lookup_function
     0.0   0.0% 100.0%      0.0   0.0% __tsearch
     0.0   0.0% 100.0%      0.0   0.0% os::realloc
     0.0   0.0% 100.0%      0.0   0.0% ParseLocale
     0.0   0.0% 100.0%      0.0   0.0% new_composite_name
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e10a50
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e11590
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e11a70
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e15542
     0.0   0.0% 100.0%    300.2  94.3% 0x00007f6c58e156c6
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e15c4e
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e15c5c
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e171ba
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e171c8
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e1ec99
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e20b15
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e20b23
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e215d9
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e215e7
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e21d79
     0.0   0.0% 100.0%      0.1   0.0% 0x00007f6c58e21d87
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e22039
     0.0   0.0% 100.0%      0.1   0.0% 0x00007f6c58e22df8
     0.0   0.0% 100.0%      0.1   0.0% 0x00007f6c58e22e06
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e23017
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e23025
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e23428
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e23436
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e25999
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e426b8
     0.0   0.0% 100.0%      0.0   0.0% 0x00007f6c58e43359
     0.0   0.0% 100.0%      0.0   0.0% AbstractICache::initialize
     0.0   0.0% 100.0%      0.0   0.0% AdapterHandlerLibrary::create_native_wrapper
     0.0   0.0% 100.0%      0.0   0.0% AdapterHandlerLibrary::get_adapter
     0.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_entry
     0.0   0.0% 100.0%      0.0   0.0% AdaptiveSizePolicy::AdaptiveSizePolicy
     0.0   0.0% 100.0%      0.0   0.0% AdjoiningGenerations::AdjoiningGenerations
     0.0   0.0% 100.0%      0.0   0.0% AdvancedThresholdPolicy::method_back_branch_event
     0.0   0.0% 100.0%      0.0   0.0% AdvancedThresholdPolicy::method_invocation_event
     0.0   0.0% 100.0%      0.0   0.0% AdvancedThresholdPolicy::submit_compile
     0.0   0.0% 100.0%      0.0   0.0% AllocateHeap [clone .constprop.292]
     0.0   0.0% 100.0%      0.4   0.1% Arena::Arena
     0.0   0.0% 100.0%      0.5   0.2% Arena::grow
     0.0   0.0% 100.0%      0.0   0.0% Arena::operator new
     0.0   0.0% 100.0%      0.0   0.0% Arguments::PropertyList_unique_add
     0.0   0.0% 100.0%      0.0   0.0% Arguments::add_property
     0.0   0.0% 100.0%      0.0   0.0% Arguments::add_string
     0.0   0.0% 100.0%      0.0   0.0% Arguments::init_system_properties
     0.0   0.0% 100.0%      0.0   0.0% Arguments::init_version_specific_system_properties
     0.0   0.0% 100.0%      0.0   0.0% Arguments::parse
     0.0   0.0% 100.0%      0.0   0.0% Arguments::parse_each_vm_init_arg
     0.0   0.0% 100.0%      0.0   0.0% Arguments::parse_vm_init_args
     0.0   0.0% 100.0%      0.0   0.0% Arguments::process_sun_java_launcher_properties
     0.0   0.0% 100.0%      0.0   0.0% Arguments::set_mode_flags
     0.0   0.0% 100.0%      0.0   0.0% Assembler::jcc
     0.0   0.0% 100.0%      0.0   0.0% Assembler::jmpb
     0.0   0.0% 100.0%      0.4   0.1% BasicHashtable::new_entry
     0.0   0.0% 100.0%      0.0   0.0% BytecodeConstantPool::create_constant_pool
     0.0   0.0% 100.0%      0.0   0.0% Bytecode_loadconstant::resolve_constant
     0.0   0.0% 100.0%      0.0   0.0% C2Compiler::compile_method
     0.0   0.0% 100.0%      0.2   0.1% C2Compiler::initialize
     0.0   0.0% 100.0%      0.2   0.0% CHeapObj::operator new
     0.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::CardTableModRefBS
     0.0   0.0% 100.0%      0.0   0.0% CardTableModRefBS::initialize
     0.0   0.0% 100.0%      0.0   0.0% CheckJvmType
     0.0   0.0% 100.0%      0.0   0.0% Chunk::start_chunk_pool_cleaner_task
     0.0   0.0% 100.0%      0.5   0.2% ChunkPool::allocate
     0.0   0.0% 100.0%      0.5   0.2% ClassFileParser::parseClassFile
     0.0   0.0% 100.0%      0.4   0.1% ClassFileParser::parse_constant_pool
     0.0   0.0% 100.0%      0.3   0.1% ClassFileParser::parse_constant_pool_entries
     0.0   0.0% 100.0%      0.0   0.0% ClassFileParser::parse_interfaces
     0.0   0.0% 100.0%      0.0   0.0% ClassLoader::add_package
     0.0   0.0% 100.0%      0.3   0.1% ClassLoader::create_class_path_entry
     0.0   0.0% 100.0%      0.0   0.0% ClassLoader::create_package_info_table
     0.0   0.0% 100.0%      0.0   0.0% ClassLoader::initialize
     0.0   0.0% 100.0%      0.8   0.3% ClassLoader::load_classfile
     0.0   0.0% 100.0%      0.0   0.0% ClassLoader::load_zip_library
     0.0   0.0% 100.0%      0.0   0.0% ClassLoader::setup_meta_index
     0.0   0.0% 100.0%      0.0   0.0% ClassLoader::setup_search_path
     0.0   0.0% 100.0%      0.0   0.0% ClassLoaderData::ClassLoaderData
     0.0   0.0% 100.0%      0.0   0.0% ClassLoaderData::add_handle
     0.0   0.0% 100.0%      0.0   0.0% ClassLoaderData::add_to_deallocate_list
     0.0   0.0% 100.0%      0.0   0.0% ClassLoaderData::metaspace_non_null
     0.0   0.0% 100.0%      0.0   0.0% ClassLoaderDataGraph::add
     0.0   0.0% 100.0%      0.0   0.0% ClassLoaderExt::record_result
     0.0   0.0% 100.0%      0.0   0.0% ClassLoadingService::init
     0.0   0.0% 100.0%      0.0   0.0% ClassPathZipEntry::ClassPathZipEntry
     0.0   0.0% 100.0%      0.0   0.0% ClassPathZipEntry::open_stream
     0.0   0.0% 100.0%      0.0   0.0% ClassVerifier::verify_class
     0.0   0.0% 100.0%      0.0   0.0% ClassVerifier::verify_exception_handler_table
     0.0   0.0% 100.0%      0.0   0.0% ClassVerifier::verify_field_instructions
     0.0   0.0% 100.0%      0.0   0.0% ClassVerifier::verify_method
     0.0   0.0% 100.0%      0.0   0.0% CodeBlob::CodeBlob
     0.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_overflow
     0.0   0.0% 100.0%      0.0   0.0% CodeBuffer::initialize
     0.0   0.0% 100.0%      0.0   0.0% CodeHeapPool::CodeHeapPool
     0.0   0.0% 100.0%      0.0   0.0% CollectedHeap::CollectedHeap
     0.0   0.0% 100.0%      0.0   0.0% CollectorCounters::CollectorCounters
     0.0   0.0% 100.0%      0.1   0.0% Compilation::Compilation
     0.0   0.0% 100.0%      0.1   0.0% Compilation::compile_java_method
     0.0   0.0% 100.0%      0.1   0.0% Compilation::compile_method
     0.0   0.0% 100.0%      0.1   0.0% Compilation::emit_lir
     0.0   0.0% 100.0%      0.1   0.0% Compile::Code_Gen
     0.0   0.0% 100.0%      0.2   0.1% Compile::Compile
     0.0   0.0% 100.0%      0.1   0.0% Compile::Init
     0.0   0.0% 100.0%      0.0   0.0% CompileBroker::compilation_init
     0.0   0.0% 100.0%      0.0   0.0% CompileBroker::compile_method
     0.0   0.0% 100.0%      0.0   0.0% CompileBroker::compile_method_base
     0.0   0.0% 100.0%      0.4   0.1% CompileBroker::compiler_thread_loop
     0.0   0.0% 100.0%      0.0   0.0% CompileBroker::create_compile_task
     0.0   0.0% 100.0%      0.3   0.1% CompileBroker::init_compiler_runtime
     0.0   0.0% 100.0%      0.0   0.0% CompileBroker::init_compiler_threads
     0.0   0.0% 100.0%      0.1   0.0% CompileBroker::invoke_compiler_on_method
     0.0   0.0% 100.0%      0.0   0.0% CompileBroker::make_compiler_thread
     0.0   0.0% 100.0%      0.0   0.0% CompiledIC::compute_monomorphic_entry
     0.0   0.0% 100.0%      0.1   0.0% Compiler::compile_method
     0.0   0.0% 100.0%      0.0   0.0% Compiler::initialize
     0.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::CompilerThread
     0.0   0.0% 100.0%      0.0   0.0% CompressedClassSpaceCounters::initialize_performance_counters
     0.0   0.0% 100.0%      0.0   0.0% CompressedKlassSpacePool::CompressedKlassSpacePool
     0.0   0.0% 100.0%      0.1   0.0% ConstantPool::allocate
     0.0   0.0% 100.0%      0.0   0.0% ConstantPool::initialize_resolved_references
     0.0   0.0% 100.0%      0.2   0.1% ConstantPool::klass_at_impl
     0.0   0.0% 100.0%      0.1   0.0% ConstantPool::klass_ref_at
     0.0   0.0% 100.0%      0.0   0.0% ConstantPool::resolve_constant_at_impl
     0.0   0.0% 100.0%      0.0   0.0% ConstantPool::string_at_impl
     0.0   0.0% 100.0%      0.0   0.0% ConstantPool::uncached_string_at
     0.0   0.0% 100.0%      0.0   0.0% ContinueInNewThread
     0.0   0.0% 100.0%      0.0   0.0% ContinueInNewThread0
     0.0   0.0% 100.0%      0.0   0.0% CreateExecutionEnvironment
     0.0   0.0% 100.0%      0.0   0.0% DCmdArgument::init_value
     0.0   0.0% 100.0%      0.0   0.0% DCmdParser::add_dcmd_option
     0.0   0.0% 100.0%      0.0   0.0% DCmdRegistrant::register_dcmds
     0.0   0.0% 100.0%      0.0   0.0% DCmdRegistrant::register_dcmds_ext
     0.0   0.0% 100.0%      0.0   0.0% DebugInformationRecorder::DebugInformationRecorder
     0.0   0.0% 100.0%      0.1   0.0% DefaultMethods::generate_default_methods
     0.0   0.0% 100.0%      0.0   0.0% Deoptimization::UnrollBlock::UnrollBlock
     0.0   0.0% 100.0%      0.0   0.0% Deoptimization::fetch_unroll_info_helper
     0.0   0.0% 100.0%      0.0   0.0% DeoptimizationBlob::create
     0.0   0.0% 100.0%      0.0   0.0% Dict::Dict
     0.0   0.0% 100.0%      0.0   0.0% Dictionary::Dictionary
     0.0   0.0% 100.0%      0.0   0.0% Dictionary::add_klass
     0.0   0.0% 100.0%      0.0   0.0% Dictionary::add_protection_domain
     0.0   0.0% 100.0%      0.0   0.0% EdenMutableSpacePool::EdenMutableSpacePool
     0.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::create
     0.0   0.0% 100.0%      0.0   0.0% Exceptions::_throw_args
     0.0   0.0% 100.0%      0.0   0.0% Exceptions::_throw_msg
     0.0   0.0% 100.0%      0.0   0.0% Exceptions::new_exception@56e460
     0.0   0.0% 100.0%      0.0   0.0% Exceptions::new_exception@56e9a0
     0.0   0.0% 100.0%      0.0   0.0% FilteredFieldsMap::initialize
     0.0   0.0% 100.0%      0.0   0.0% GCAdaptivePolicyCounters::GCAdaptivePolicyCounters
     0.0   0.0% 100.0%      0.0   0.0% GCMemoryManager::initialize_gc_stat_info
     0.0   0.0% 100.0%      0.0   0.0% GCPolicyCounters::GCPolicyCounters
     0.0   0.0% 100.0%      0.0   0.0% GCStatInfo::GCStatInfo
     0.0   0.0% 100.0%      0.0   0.0% GCStats::GCStats
     0.0   0.0% 100.0%      0.0   0.0% GCTaskManager::initialize
     0.0   0.0% 100.0%      0.0   0.0% GCTaskThread::GCTaskThread
     0.0   0.0% 100.0%      0.0   0.0% GenericGrowableArray::raw_allocate
     0.0   0.0% 100.0%      0.0   0.0% GetJavaProperties
     0.0   0.0% 100.0%      0.0   0.0% GetLauncherHelperClass
     0.0   0.0% 100.0%      0.0   0.0% GlobalTLABStats::GlobalTLABStats
     0.0   0.0% 100.0%      0.0   0.0% Handle::Handle
     0.0   0.0% 100.0%      0.0   0.0% HandleMark::operator new
     0.0   0.0% 100.0%      0.4   0.1% Hashtable::new_entry
     0.0   0.0% 100.0%      0.0   0.0% ICacheStubGenerator::generate_icache_flush
     0.0   0.0% 100.0%      0.0   0.0% InlineCacheBuffer_init
     0.0   0.0% 100.0%      0.0   0.0% InstanceKlass::add_dependent_nmethod
     0.0   0.0% 100.0%      0.0   0.0% InstanceKlass::call_class_initializer_impl
     0.0   0.0% 100.0%      0.0   0.0% InstanceKlass::do_local_static_fields_impl
     0.0   0.0% 100.0%      0.0   0.0% InstanceKlass::get_jmethod_id
     0.0   0.0% 100.0%      0.0   0.0% InstanceKlass::initialize
     0.0   0.0% 100.0%      0.0   0.0% InstanceKlass::initialize_impl
     0.0   0.0% 100.0%      0.0   0.0% InstanceKlass::jni_id_for_impl
     0.0   0.0% 100.0%      0.0   0.0% InstanceKlass::link_class
     0.0   0.0% 100.0%      0.0   0.0% InstanceKlass::link_class_impl
     0.0   0.0% 100.0%      0.0   0.0% InstanceKlass::link_class_or_fail
     0.0   0.0% 100.0%      0.0   0.0% InstanceKlass::link_methods
     0.0   0.0% 100.0%      0.0   0.0% InstanceKlass::rewrite_class
     0.0   0.0% 100.0%      0.0   0.0% InterpreterMacroAssembler::profile_obj_type
     0.0   0.0% 100.0%      0.0   0.0% InterpreterMacroAssembler::profile_return_type
     0.0   0.0% 100.0%      0.1   0.0% InterpreterRuntime::_new
     0.0   0.0% 100.0%      0.0   0.0% InterpreterRuntime::anewarray
     0.0   0.0% 100.0%      0.0   0.0% InterpreterRuntime::frequency_counter_overflow
     0.0   0.0% 100.0%      0.0   0.0% InterpreterRuntime::frequency_counter_overflow_inner
     0.0   0.0% 100.0%      0.0   0.0% InterpreterRuntime::ldc
     0.0   0.0% 100.0%      0.0   0.0% InterpreterRuntime::prepare_native_call
     0.0   0.0% 100.0%      0.0   0.0% InterpreterRuntime::quicken_io_cc
     0.0   0.0% 100.0%      0.0   0.0% InterpreterRuntime::resolve_get_put
     0.0   0.0% 100.0%      0.1   0.0% InterpreterRuntime::resolve_invoke
     0.0   0.0% 100.0%      0.0   0.0% InterpreterRuntime::resolve_ldc
     0.0   0.0% 100.0%      0.0   0.0% Interval::add_range
     0.0   0.0% 100.0%      0.0   0.0% JDK_Version_init
     0.0   0.0% 100.0%      0.1   0.0% JLI_Launch
     0.0   0.0% 100.0%      0.0   0.0% JLI_StringDup
     0.0   0.0% 100.0%      0.0   0.0% JMXStartRemoteDCmd::num_arguments
     0.0   0.0% 100.0%      0.0   0.0% JNIHandleBlock::allocate_block
     0.0   0.0% 100.0%     17.4   5.5% JNI_CreateJavaVM
     0.0   0.0% 100.0%      0.0   0.0% JNU_CallStaticMethodByName
     0.0   0.0% 100.0%      0.0   0.0% JNU_NewStringPlatform
     0.0   0.0% 100.0%      0.0   0.0% JVM_DefineClassWithSource
     0.0   0.0% 100.0%      0.0   0.0% JVM_DoPrivileged
     0.0   0.0% 100.0%      0.0   0.0% JVM_FindClassFromBootLoader
     0.0   0.0% 100.0%      0.0   0.0% JVM_FindClassFromCaller
     0.0   0.0% 100.0%      0.0   0.0% JVM_FindLoadedClass
     0.0   0.0% 100.0%      0.1   0.0% JVM_GetClassDeclaredFields
     0.0   0.0% 100.0%      0.0   0.0% JVM_GetClassDeclaredMethods
     0.0   0.0% 100.0%      0.0   0.0% JVM_GetStackAccessControlContext
     0.0   0.0% 100.0%      0.0   0.0% JVM_RawMonitorCreate
     0.0   0.0% 100.0%      0.0   0.0% JVM_RegisterMethodHandleMethods
     0.0   0.0% 100.0%      0.0   0.0% JVM_RegisterUnsafeMethods
     0.0   0.0% 100.0%      0.0   0.0% JVM_StartThread
     0.0   0.0% 100.0%      0.0   0.0% JavaCallWrapper::JavaCallWrapper
     0.0   0.0% 100.0%      0.0   0.0% JavaCalls::call_helper
     0.0   0.0% 100.0%      0.0   0.0% JavaCalls::call_virtual@6858c0
     0.0   0.0% 100.0%      0.0   0.0% JavaCalls::call_virtual@6860a0
     0.0   0.0% 100.0%     17.4   5.5% JavaMain
     0.0   0.0% 100.0%      0.0   0.0% JavaThread::JavaThread
     0.0   0.0% 100.0%      0.4   0.1% JavaThread::run
     0.0   0.0% 100.0%      0.4   0.1% JavaThread::thread_main_inner
     0.0   0.0% 100.0%      0.0   0.0% Java_java_lang_ClassLoader_defineClass1
     0.0   0.0% 100.0%      0.0   0.0% Java_java_lang_ClassLoader_findBootstrapClass
     0.0   0.0% 100.0%      0.0   0.0% Java_java_lang_Class_forName0
     0.0   0.0% 100.0%      0.0   0.0% Java_java_lang_System_initProperties
     0.0   0.0% 100.0%      0.0   0.0% Java_java_lang_System_setErr0
     0.0   0.0% 100.0%      0.0   0.0% Java_java_lang_System_setIn0
     0.0   0.0% 100.0%      0.0   0.0% Java_java_lang_System_setOut0
     0.0   0.0% 100.0%      0.1   0.0% Java_java_util_zip_Inflater_inflateBytes
     0.0   0.0% 100.0%      0.0   0.0% Java_java_util_zip_ZipFile_getEntry
     0.0   0.0% 100.0%      0.0   0.0% Java_java_util_zip_ZipFile_open
     0.0   0.0% 100.0%      0.0   0.0% Jfr::on_vm_init
     0.0   0.0% 100.0%      0.0   0.0% Jfr::register_jfr_dcmds
     0.0   0.0% 100.0%      0.0   0.0% JfrActivator::on_vm_init
     0.0   0.0% 100.0%      0.0   0.0% JfrRuntimeOptions::register_parser_options
     0.0   0.0% 100.0%      0.0   0.0% Label::add_patch_at
     0.0   0.0% 100.0%      0.3   0.1% LazyClassPathEntry::open_stream
     0.0   0.0% 100.0%      0.0   0.0% LinearScan::add_use
     0.0   0.0% 100.0%      0.0   0.0% LinearScan::assign_reg_num@39f510
     0.0   0.0% 100.0%      0.0   0.0% LinearScan::assign_reg_num@39f970
     0.0   0.0% 100.0%      0.0   0.0% LinearScan::build_intervals
     0.0   0.0% 100.0%      0.0   0.0% LinearScan::compute_debug_info_for_scope
     0.0   0.0% 100.0%      0.1   0.0% LinearScan::do_linear_scan
     0.0   0.0% 100.0%      0.0   0.0% LinearScan::sort_intervals_before_allocation
     0.0   0.0% 100.0%      0.0   0.0% LinkResolver::check_method_loader_constraints
     0.0   0.0% 100.0%      0.0   0.0% LinkResolver::linktime_resolve_static_method
     0.0   0.0% 100.0%      0.0   0.0% LinkResolver::linktime_resolve_virtual_method
     0.0   0.0% 100.0%      0.0   0.0% LinkResolver::resolve_field
     0.0   0.0% 100.0%      0.0   0.0% LinkResolver::resolve_field_access
     0.0   0.0% 100.0%      0.0   0.0% LinkResolver::resolve_interface_method
     0.0   0.0% 100.0%      0.1   0.0% LinkResolver::resolve_invoke
     0.0   0.0% 100.0%      0.0   0.0% LinkResolver::resolve_invokeinterface
     0.0   0.0% 100.0%      0.1   0.0% LinkResolver::resolve_invokestatic
     0.0   0.0% 100.0%      0.0   0.0% LinkResolver::resolve_invokevirtual
     0.0   0.0% 100.0%      0.0   0.0% LinkResolver::resolve_method
     0.0   0.0% 100.0%      0.0   0.0% LinkResolver::resolve_static_call
     0.0   0.0% 100.0%      0.1   0.0% LoadJavaVM
     0.0   0.0% 100.0%      0.0   0.0% LoaderConstraintTable::LoaderConstraintTable
     0.0   0.0% 100.0%      0.0   0.0% LoaderConstraintTable::add_entry
     0.0   0.0% 100.0%      0.0   0.0% MacroAssembler::eden_allocate
     0.0   0.0% 100.0%      0.0   0.0% Management::initialize
     0.0   0.0% 100.0%      0.1   0.0% Matcher::Label_Root
     0.0   0.0% 100.0%      0.0   0.0% Matcher::Matcher
     0.0   0.0% 100.0%      0.1   0.0% Matcher::match
     0.0   0.0% 100.0%      0.1   0.0% Matcher::match_tree
     0.0   0.0% 100.0%      0.1   0.0% Matcher::xform
     0.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_manager
     0.0   0.0% 100.0%      0.0   0.0% MemoryManager::get_metaspace_memory_manager
     0.0   0.0% 100.0%      0.0   0.0% MemoryManager::get_psMarkSweep_memory_manager
     0.0   0.0% 100.0%      0.0   0.0% MemoryManager::get_psScavenge_memory_manager
     0.0   0.0% 100.0%      0.0   0.0% MemoryPool::MemoryPool
     0.0   0.0% 100.0%      0.0   0.0% MemoryService::add_code_heap_memory_pool
     0.0   0.0% 100.0%      0.0   0.0% MemoryService::add_metaspace_memory_pools
     0.0   0.0% 100.0%      0.0   0.0% MemoryService::add_parallel_scavenge_heap_info
     0.0   0.0% 100.0%      0.0   0.0% MemoryService::add_psYoung_memory_pool
     0.0   0.0% 100.0%      0.0   0.0% MemoryService::set_universe_heap
     0.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::Metaspace
     0.0   0.0% 100.0%      0.0   0.0% Metaspace::allocate
     0.0   0.0% 100.0%      0.0   0.0% Metaspace::allocate_metaspace_compressed_klass_ptrs
     0.0   0.0% 100.0%      0.0   0.0% Metaspace::deallocate
     0.0   0.0% 100.0%      0.0   0.0% Metaspace::global_initialize
     0.0   0.0% 100.0%      0.0   0.0% Metaspace::initialize_class_space
     0.0   0.0% 100.0%      0.0   0.0% MetaspaceCounters::initialize_performance_counters
     0.0   0.0% 100.0%      0.0   0.0% MetaspacePool::MetaspacePool
     0.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_id
     0.0   0.0% 100.0%      0.0   0.0% MethodFamily::generate_method_message
     0.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::reserve
     0.0   0.0% 100.0%      0.0   0.0% MutableSpace::MutableSpace
     0.0   0.0% 100.0%      0.0   0.0% NamedThread::NamedThread
     0.0   0.0% 100.0%      0.0   0.0% NamedThread::set_name
     0.0   0.0% 100.0%      0.0   0.0% Node::clone
     0.0   0.0% 100.0%      0.0   0.0% OSContainer::init
     0.0   0.0% 100.0%      0.0   0.0% OSThread::OSThread
     0.0   0.0% 100.0%      0.0   0.0% OSThread::pd_initialize
     0.0   0.0% 100.0%      0.0   0.0% ObjectMonitor::Initialize
     0.0   0.0% 100.0%      0.0   0.0% ObjectSynchronizer::inflate
     0.0   0.0% 100.0%      0.0   0.0% ObjectSynchronizer::omAlloc
     0.0   0.0% 100.0%      0.0   0.0% ObjectSynchronizer::waitUninterruptibly
     0.0   0.0% 100.0%      0.2   0.1% OptoRuntime::generate
     0.0   0.0% 100.0%      0.0   0.0% OptoRuntime::generate_exception_blob
     0.0   0.0% 100.0%      0.2   0.1% OptoRuntime::generate_stub
     0.0   0.0% 100.0%      0.0   0.0% PSAdaptiveSizePolicy::PSAdaptiveSizePolicy
     0.0   0.0% 100.0%      0.0   0.0% PSGCAdaptivePolicyCounters::PSGCAdaptivePolicyCounters
     0.0   0.0% 100.0%      0.0   0.0% PSGenerationCounters::PSGenerationCounters
     0.0   0.0% 100.0%      0.0   0.0% PSGenerationPool::PSGenerationPool
     0.0   0.0% 100.0%      0.0   0.0% PSOldGen::initialize
     0.0   0.0% 100.0%      0.0   0.0% PSOldGen::initialize_work
     0.0   0.0% 100.0%      0.0   0.0% PSParallelCompact::initialize
     0.0   0.0% 100.0%     10.6   3.3% PSParallelCompact::post_initialize
     0.0   0.0% 100.0%      5.0   1.6% PSPromotionManager::PSPromotionManager
     0.0   0.0% 100.0%      5.0   1.6% PSPromotionManager::initialize
     0.0   0.0% 100.0%      0.0   0.0% PSScavenge::initialize
     0.0   0.0% 100.0%      0.0   0.0% PSYoungGen::initialize
     0.0   0.0% 100.0%      0.0   0.0% PSYoungGen::initialize_work
     0.0   0.0% 100.0%      5.0   1.6% PaddedArray::create_unfreeable
     0.0   0.0% 100.0%      5.6   1.8% ParCompactionManager::ParCompactionManager
     0.0   0.0% 100.0%     10.6   3.3% ParCompactionManager::initialize
     0.0   0.0% 100.0%      0.0   0.0% ParMarkBitMap::initialize
     0.0   0.0% 100.0%      0.0   0.0% ParallelCompactData::create_vspace
     0.0   0.0% 100.0%      0.0   0.0% ParallelScavengeHeap::initialize
     0.0   0.0% 100.0%     10.6   3.3% ParallelScavengeHeap::post_initialize
     0.0   0.0% 100.0%      0.0   0.0% ParkEvent::Allocate
     0.0   0.0% 100.0%      0.0   0.0% Parker::Allocate
     0.0   0.0% 100.0%      0.0   0.0% PerfData::PerfData
     0.0   0.0% 100.0%      0.0   0.0% PerfDataList::PerfDataList
     0.0   0.0% 100.0%      0.0   0.0% PerfDataManager::add_item
     0.0   0.0% 100.0%      0.0   0.0% PerfDataManager::create_long_constant
     0.0   0.0% 100.0%      0.0   0.0% PerfDataManager::create_long_counter@95e450
     0.0   0.0% 100.0%      0.0   0.0% PerfDataManager::create_long_counter@95e9a0
     0.0   0.0% 100.0%      0.0   0.0% PerfDataManager::create_long_variable@95dc30
     0.0   0.0% 100.0%      0.0   0.0% PerfDataManager::create_long_variable@95e180
     0.0   0.0% 100.0%      0.0   0.0% PerfDataManager::create_string_constant
     0.0   0.0% 100.0%      0.0   0.0% PerfDataManager::create_string_variable
     0.0   0.0% 100.0%      0.0   0.0% PerfDataManager::sampled
     0.0   0.0% 100.0%      0.0   0.0% PerfMemory::create_memory_region
     0.0   0.0% 100.0%      0.0   0.0% PerfStringConstant::PerfStringConstant
     0.0   0.0% 100.0%      0.0   0.0% Perf_CreateLong
     0.0   0.0% 100.0%      0.0   0.0% PlaceholderTable::PlaceholderTable
     0.0   0.0% 100.0%      0.0   0.0% PlaceholderTable::find_and_add
     0.0   0.0% 100.0%      0.0   0.0% ProtectionDomainCacheTable::get
     0.0   0.0% 100.0%      0.0   0.0% ReferenceProcessor::ReferenceProcessor
     0.0   0.0% 100.0%      0.0   0.0% Reflection::get_parameter_types
     0.0   0.0% 100.0%      0.1   0.0% Reflection::new_field
     0.0   0.0% 100.0%      0.0   0.0% Reflection::new_method
     0.0   0.0% 100.0%      0.1   0.0% Reflection::new_type
     0.0   0.0% 100.0%      0.0   0.0% ResolutionErrorTable::ResolutionErrorTable
     0.0   0.0% 100.0%      0.0   0.0% ResourceObj::operator new
     0.0   0.0% 100.0%      0.0   0.0% Rewriter::Rewriter
     0.0   0.0% 100.0%      0.0   0.0% Rewriter::rewrite
     0.0   0.0% 100.0%      0.0   0.0% Runtime1::generate_blob_for
     0.0   0.0% 100.0%      0.0   0.0% Runtime1::generate_code_for
     0.0   0.0% 100.0%      0.0   0.0% Runtime1::initialize
     0.0   0.0% 100.0%      0.0   0.0% RuntimeService::init
     0.0   0.0% 100.0%      0.0   0.0% RuntimeStub::new_runtime_stub
     0.0   0.0% 100.0%      0.0   0.0% SafepointBlob::create
     0.0   0.0% 100.0%      0.0   0.0% ServiceThread::initialize
     0.0   0.0% 100.0%      0.0   0.0% SetExecname
     0.0   0.0% 100.0%      0.0   0.0% SetJavaCommandLineProp
     0.0   0.0% 100.0%      0.0   0.0% SetJavaLauncherPlatformProps
     0.0   0.0% 100.0%      0.0   0.0% SharedRuntime::generate_deopt_blob
     0.0   0.0% 100.0%      0.0   0.0% SharedRuntime::generate_handler_blob
     0.0   0.0% 100.0%      0.0   0.0% SharedRuntime::generate_i2c2i_adapters
     0.0   0.0% 100.0%      0.0   0.0% SharedRuntime::generate_native_wrapper
     0.0   0.0% 100.0%      0.0   0.0% SharedRuntime::generate_resolve_blob
     0.0   0.0% 100.0%      0.0   0.0% SharedRuntime::generate_stubs
     0.0   0.0% 100.0%      0.0   0.0% SharedRuntime::generate_uncommon_trap_blob
     0.0   0.0% 100.0%      0.0   0.0% SharedRuntime::resolve_helper
     0.0   0.0% 100.0%      0.0   0.0% SharedRuntime::resolve_sub_helper
     0.0   0.0% 100.0%      0.0   0.0% SharedRuntime::resolve_virtual_call_C
     0.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::event
     0.0   0.0% 100.0%      0.0   0.0% SpaceCounters::SpaceCounters
     0.0   0.0% 100.0%      0.0   0.0% StackMapFrame::pop_stack
     0.0   0.0% 100.0%      0.0   0.0% StatSampler::create_misc_perfdata
     0.0   0.0% 100.0%      0.0   0.0% StatSampler::create_sampled_perfdata
     0.0   0.0% 100.0%      0.0   0.0% StatSampler::create_system_property_instrumentation
     0.0   0.0% 100.0%      0.0   0.0% StatSampler::engage
     0.0   0.0% 100.0%      0.0   0.0% StringTable::basic_add
     0.0   0.0% 100.0%      0.0   0.0% StringTable::intern@a37680
     0.0   0.0% 100.0%      0.0   0.0% StringTable::intern@a378d0
     0.0   0.0% 100.0%      0.0   0.0% StubCodeMark::StubCodeMark
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_aescrypt_decryptBlock
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_aescrypt_encryptBlock
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_all
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_arraycopy_stubs
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_call_stub
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_catch_exception
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_checkcast_copy
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_cipherBlockChaining_decryptAESCrypt_Parallel
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_cipherBlockChaining_encryptAESCrypt
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_conjoint_byte_copy
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_conjoint_int_oop_copy
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_conjoint_long_oop_copy
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_disjoint_byte_copy
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_disjoint_int_oop_copy
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_disjoint_long_oop_copy
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_disjoint_short_copy
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_generic_copy
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_initial
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_math_stubs
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_throw_exception
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator::generate_verify_oop
     0.0   0.0% 100.0%      0.0   0.0% StubGenerator_generate
     0.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::SurvivorMutableSpacePool
     0.0   0.0% 100.0%      0.0   0.0% Symbol::operator new
     0.0   0.0% 100.0%      0.0   0.0% SymbolPropertyTable::SymbolPropertyTable
     0.0   0.0% 100.0%      0.3   0.1% SymbolTable::add
     0.0   0.0% 100.0%      0.0   0.0% SymbolTable::basic_add@a35ad0
     0.0   0.0% 100.0%      0.3   0.1% SymbolTable::basic_add@a36880
     0.0   0.0% 100.0%      0.4   0.1% SymbolTable::initialize_symbols
     0.0   0.0% 100.0%      0.0   0.0% SymbolTable::lookup
     0.0   0.0% 100.0%      0.0   0.0% SymbolTable::new_permanent_symbol
     0.0   0.0% 100.0%      0.0   0.0% SystemDictionary::check_signature_loaders
     0.0   0.0% 100.0%      0.0   0.0% SystemDictionary::define_instance_class
     0.0   0.0% 100.0%      0.0   0.0% SystemDictionary::find_or_define_instance_class
     0.0   0.0% 100.0%      0.0   0.0% SystemDictionary::initialize
     0.0   0.0% 100.0%      0.5   0.2% SystemDictionary::initialize_preloaded_classes
     0.0   0.0% 100.0%      0.5   0.2% SystemDictionary::initialize_wk_klasses_until
     0.0   0.0% 100.0%      0.9   0.3% SystemDictionary::load_instance_class
     0.0   0.0% 100.0%      0.0   0.0% SystemDictionary::resolve_array_class_or_null
     0.0   0.0% 100.0%      0.0   0.0% SystemDictionary::resolve_from_stream
     0.0   0.0% 100.0%      0.9   0.3% SystemDictionary::resolve_instance_class_or_null
     0.0   0.0% 100.0%      0.0   0.0% SystemDictionary::resolve_or_fail@a453b0
     0.0   0.0% 100.0%      0.3   0.1% SystemDictionary::resolve_or_fail@a45730
     0.0   0.0% 100.0%      0.2   0.0% SystemDictionary::resolve_super_or_fail
     0.0   0.0% 100.0%      0.0   0.0% SystemDictionary::update_dictionary
     0.0   0.0% 100.0%      0.0   0.0% SystemDictionary::validate_protection_domain
     0.0   0.0% 100.0%      0.0   0.0% SystemProperty::SystemProperty
     0.0   0.0% 100.0%      0.0   0.0% TemplateInterpreter::initialize
     0.0   0.0% 100.0%      0.0   0.0% TemplateInterpreterGenerator::generate_all
     0.0   0.0% 100.0%      0.0   0.0% TemplateInterpreterGenerator::generate_return_entry_for
     0.0   0.0% 100.0%      0.0   0.0% Thread::allocate
     0.0   0.0% 100.0%      0.0   0.0% ThreadLocalAllocBuffer::startup_initialization
     0.0   0.0% 100.0%      0.0   0.0% ThreadSafepointState::create
     0.0   0.0% 100.0%      0.0   0.0% ThreadService::init
     0.0   0.0% 100.0%     17.4   5.5% Threads::create_vm
     0.0   0.0% 100.0%      0.0   0.0% TimePartitions::TimePartitions
     0.0   0.0% 100.0%      0.0   0.0% Type::Initialize
     0.0   0.0% 100.0%      0.0   0.0% Type::Initialize_shared
     0.0   0.0% 100.0%      0.0   0.0% TypeArrayKlass::create_klass
     0.0   0.0% 100.0%      0.0   0.0% UncommonTrapBlob::create
     0.0   0.0% 100.0%      0.6   0.2% Universe::genesis
     0.0   0.0% 100.0%      0.1   0.0% Universe::initialize_heap
     0.0   0.0% 100.0%    300.0  94.2% Unsafe_AllocateMemory
     0.0   0.0% 100.0%      0.0   0.0% VMThread::create
     0.0   0.0% 100.0%      0.0   0.0% VMThread::run
     0.0   0.0% 100.0%      0.0   0.0% VM_Version::get_processor_features
     0.0   0.0% 100.0%      0.0   0.0% VM_Version::initialize
     0.0   0.0% 100.0%      0.0   0.0% VM_Version_Ext::generate_cpuid_brand_string_code
     0.0   0.0% 100.0%      0.0   0.0% VM_Version_Ext::maximum_qualified_cpu_frequency
     0.0   0.0% 100.0%      0.0   0.0% VM_Version_Ext_StubGenerator::generate_getCPUIDBrandString
     0.0   0.0% 100.0%      0.0   0.0% VM_Version_StubGenerator::generate_get_cpu_info
     0.0   0.0% 100.0%      0.0   0.0% VerificationType::is_reference_assignable_from
     0.0   0.0% 100.0%      0.0   0.0% Verifier::verify
     0.0   0.0% 100.0%      0.0   0.0% VirtualSpaceList::VirtualSpaceList
     0.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::run
     0.0   0.0% 100.0%      0.0   0.0% X86FastTime::initialize
     0.0   0.0% 100.0%      0.0   0.0% ZIP_FindEntry
     0.0   0.0% 100.0%      0.0   0.0% ZIP_GetEntry2
     0.0   0.0% 100.0%      0.0   0.0% ZIP_Get_From_Cache
     0.0   0.0% 100.0%      0.3   0.1% ZIP_Open
     0.0   0.0% 100.0%      0.0   0.0% ZIP_Open_Generic
     0.0   0.0% 100.0%      0.0   0.0% _GLOBAL__sub_I_c1_LinearScan.cpp
     0.0   0.0% 100.0%      0.0   0.0% _GLOBAL__sub_I_codeCache.cpp
     0.0   0.0% 100.0%      0.0   0.0% _GLOBAL__sub_I_decoder.cpp
     0.0   0.0% 100.0%      0.0   0.0% _GLOBAL__sub_I_diagnosticFramework.cpp
     0.0   0.0% 100.0%      0.0   0.0% _GLOBAL__sub_I_g1CollectedHeap.cpp
     0.0   0.0% 100.0%      0.0   0.0% _GLOBAL__sub_I_jfrOptions.cpp
     0.0   0.0% 100.0%      0.0   0.0% _GLOBAL__sub_I_memoryService.cpp
     0.0   0.0% 100.0%      0.0   0.0% _GLOBAL__sub_I_metaspace.cpp
     0.0   0.0% 100.0%      0.0   0.0% _GLOBAL__sub_I_psParallelCompact.cpp
     0.0   0.0% 100.0%      0.0   0.0% _GLOBAL__sub_I_psScavenge.cpp
     0.0   0.0% 100.0%      0.0   0.0% _GLOBAL__sub_I_reflectionUtils.cpp
     0.0   0.0% 100.0%      0.0   0.0% _GLOBAL__sub_I_resourceContextFactory.cpp
     0.0   0.0% 100.0%      0.0   0.0% __GI___libc_dlopen_mode
     0.0   0.0% 100.0%      0.0   0.0% __GI___nss_lookup
     0.0   0.0% 100.0%      0.0   0.0% __GI___nss_passwd_lookup2
     0.0   0.0% 100.0%      0.0   0.0% __GI_setlocale
     0.0   0.0% 100.0%     17.8   5.6% __clone
     0.0   0.0% 100.0%      0.0   0.0% __cxa_atexit_internal
     0.0   0.0% 100.0%      0.1   0.0% __dlopen_check
     0.0   0.0% 100.0%      0.0   0.0% __getpwuid_r
     0.0   0.0% 100.0%      0.1   0.0% __libc_start_main
     0.0   0.0% 100.0%      0.0   0.0% __pthread_create_2_1
     0.0   0.0% 100.0%      0.0   0.0% __tzset
     0.0   0.0% 100.0%      0.1   0.0% _dl_catch_error
     0.0   0.0% 100.0%      0.1   0.0% _dl_init_internal
     0.0   0.0% 100.0%      0.0   0.0% _dl_load_cache_lookup
     0.0   0.0% 100.0%      0.0   0.0% _dl_map_object
     0.0   0.0% 100.0%      0.0   0.0% _dl_map_object_from_fd
     0.0   0.0% 100.0%      0.1   0.0% _dl_open
     0.0   0.0% 100.0%      0.1   0.0% _init
     0.0   0.0% 100.0%      0.0   0.0% _nl_find_locale
     0.0   0.0% 100.0%      0.0   0.0% chunkpool_init
     0.0   0.0% 100.0%      0.0   0.0% ciEnv::ciEnv
     0.0   0.0% 100.0%      0.0   0.0% ciEnv::register_method
     0.0   0.0% 100.0%      0.0   0.0% ciObjectFactory::initialize
     0.0   0.0% 100.0%      0.0   0.0% codeCache_init
     0.0   0.0% 100.0%      0.0   0.0% compilationPolicy_init
     0.0   0.0% 100.0%      0.0   0.0% compileBroker_init
     0.0   0.0% 100.0%      0.0   0.0% create_defaults_and_exceptions
     0.0   0.0% 100.0%      0.1   0.0% dlopen_doit
     0.0   0.0% 100.0%      0.0   0.0% do_dlopen
     0.0   0.0% 100.0%      0.0   0.0% find_class_from_class_loader
     0.0   0.0% 100.0%      0.0   0.0% get_class_declared_methods_helper
     0.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_path
     0.0   0.0% 100.0%      0.0   0.0% get_sharedmem_filename
     0.0   0.0% 100.0%      0.1   0.0% inflate@b930
     0.0   0.0% 100.0%     17.3   5.4% init_globals
     0.0   0.0% 100.0%      0.0   0.0% initializeDirectBufferSupport [clone .part.72]
     0.0   0.0% 100.0%      0.0   0.0% initializeEncoding
     0.0   0.0% 100.0%      0.0   0.0% initialize_class
     0.0   0.0% 100.0%      0.0   0.0% initialize_static_field
     0.0   0.0% 100.0%      0.0   0.0% interpreter_init
     0.0   0.0% 100.0%      0.0   0.0% java_lang_Class::create_mirror
     0.0   0.0% 100.0%      0.0   0.0% java_lang_reflect_Field::create
     0.0   0.0% 100.0%      0.0   0.0% java_security_AccessControlContext::create
     0.0   0.0% 100.0%      0.4   0.1% java_start
     0.0   0.0% 100.0%      0.0   0.0% jni_FindClass
     0.0   0.0% 100.0%      0.0   0.0% jni_GetMethodID
     0.0   0.0% 100.0%      0.0   0.0% jni_GetStaticFieldID
     0.0   0.0% 100.0%      0.0   0.0% jni_GetStaticMethodID
     0.0   0.0% 100.0%      0.0   0.0% jni_NewDirectByteBuffer
     0.0   0.0% 100.0%      0.0   0.0% jni_RegisterNatives
     0.0   0.0% 100.0%      0.0   0.0% jni_handles_init
     0.0   0.0% 100.0%      0.0   0.0% jvm_define_class_common
     0.0   0.0% 100.0%      0.0   0.0% lookupDirectBufferClasses
     0.0   0.0% 100.0%      0.0   0.0% lookupOne
     0.0   0.0% 100.0%      0.0   0.0% management_init
     0.0   0.0% 100.0%      0.0   0.0% marksweep_init
     0.0   0.0% 100.0%      0.0   0.0% mutex_init
     0.0   0.0% 100.0%      0.0   0.0% nmethod::new_native_nmethod
     0.0   0.0% 100.0%      0.0   0.0% nmethod::new_nmethod
     0.0   0.0% 100.0%      0.0   0.0% nmethod::nmethod
     0.0   0.0% 100.0%      0.0   0.0% openaux
     0.0   0.0% 100.0%      0.0   0.0% os::Linux::clock_init
     0.0   0.0% 100.0%      0.0   0.0% os::Linux::libpthread_init
     0.0   0.0% 100.0%      0.0   0.0% os::create_main_thread
     0.0   0.0% 100.0%      0.0   0.0% os::create_thread
     0.0   0.0% 100.0%      0.0   0.0% os::dll_load
     0.0   0.0% 100.0%      0.0   0.0% os::format_boot_path
     0.0   0.0% 100.0%      0.0   0.0% os::init
     0.0   0.0% 100.0%      0.0   0.0% os::init_2
     0.0   0.0% 100.0%      0.0   0.0% os::init_ft
     0.0   0.0% 100.0%      0.0   0.0% os::init_globals_ext
     0.0   0.0% 100.0%      0.0   0.0% os::init_system_properties_values
     0.0   0.0% 100.0%      0.0   0.0% os::native_java_library
     0.0   0.0% 100.0%      0.0   0.0% os::set_boot_path
     0.0   0.0% 100.0%      0.0   0.0% os::signal_init
     0.0   0.0% 100.0%      0.0   0.0% ostream_init
     0.0   0.0% 100.0%      0.0   0.0% perfMemory_init
     0.0   0.0% 100.0%      0.0   0.0% referenceProcessor_init
     0.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_thread
     0.0   0.0% 100.0%      0.0   0.0% thread_entry
     0.0   0.0% 100.0%      0.0   0.0% tzset_internal
     0.0   0.0% 100.0%      0.6   0.2% universe2_init
     0.0   0.0% 100.0%      1.0   0.3% universe_init
     0.0   0.0% 100.0%     15.6   4.9% universe_post_init
     0.0   0.0% 100.0%      0.0   0.0% vframeArray::allocate
     0.0   0.0% 100.0%      0.0   0.0% vmSymbols::initialize
     0.0   0.0% 100.0%      0.0   0.0% vm_init_globals
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值