Java 了解Jeprofile输出

Java 了解Jeprofile输出,java,memory-leaks,jvm,java-native-interface,jemalloc,Java,Memory Leaks,Jvm,Java Native Interface,Jemalloc,根据这里的描述,我能够生成如下的Jeprofile输出 请查找jemalloc输出和图表 > Using local file /bin/java. Using local file jeprof.57473.0.f.heap. > Total: 79372091 B 78084060 98.4% 98.4% 78084060 98.4% > je_prof_backtrace 1288031 1.6% 100.0% 1474342 1.9% > Jav

根据这里的描述,我能够生成如下的Jeprofile输出

请查找jemalloc输出和图表

> Using local file /bin/java. Using local file jeprof.57473.0.f.heap.
> Total: 79372091 B 78084060  98.4%  98.4% 78084060  98.4%
> je_prof_backtrace  1288031   1.6% 100.0%  1474342   1.9%
> Java_java_util_zip_ZipFile_getZipMessage
>        0   0.0% 100.0%  6889972   8.7% 0x00007f3d5ebac3e6
>        0   0.0% 100.0%   270421   0.3% 0x00007f3d5ebb8a79
>        0   0.0% 100.0%   727762   0.9% 0x00007f3d5ebb8a87
>        0   0.0% 100.0%   589239   0.7% 0x00007f3d5ebb9ab2
>        0   0.0% 100.0%   854269   1.1% 0x00007f3d5ebb9ac0
>        0   0.0% 100.0%   270421   0.3% 0x00007f3d5ebb9cb7
>        0   0.0% 100.0%   135210   0.2% 0x00007f3d5ebbc5fa
>        0   0.0% 100.0%   135210   0.2% 0x00007f3d5ebbc768
>        0   0.0% 100.0%   135210   0.2% 0x00007f3d5ee57146
>        0   0.0% 100.0%   143743   0.2% 0x00007f3d5ee8bc25
>        0   0.0% 100.0%   444413   0.6% 0x00007f3d5ef13945
>        0   0.0% 100.0%   136258   0.2% 0x00007f3d5ef764fb
>        0   0.0% 100.0%  8463202  10.7% 0x00007f3d5efbdb8a
>        0   0.0% 100.0%   143743   0.2% 0x00007f3d5f220c67
>        0   0.0% 100.0%   135210   0.2% 0x00007f3d5f3a5c65
>        0   0.0% 100.0% 55473738  69.9% AsyncGetCallTrace
>        0   0.0% 100.0% 48103708  60.6% JLI_GetStdArgc
>        0   0.0% 100.0% 48103708  60.6% JNI_CreateJavaVM
>        0   0.0% 100.0% 11897251  15.0% JNI_GetCreatedJavaVMs
>        0   0.0% 100.0% 11897251  15.0% JVM_DefineClassWithSource
>        0   0.0% 100.0%   271469   0.3% JVM_FindClassFromBootLoader
>        0   0.0% 100.0%   431486   0.5% JVM_FindClassFromCaller
>        0   0.0% 100.0%   131120   0.2% JVM_FindLoadedClass
>        0   0.0% 100.0% 76994237  97.0% JVM_FindSignal
>        0   0.0% 100.0%   148137   0.2% JVM_GetCPMethodClassNameUTF
>        0   0.0% 100.0%   148137   0.2% JVM_GetCPMethodSignatureUTF
>        0   0.0% 100.0%   135210   0.2% JVM_GetClassDeclaredFields
>        0   0.0% 100.0%   405631   0.5% JVM_GetClassName
>        0   0.0% 100.0%   143743   0.2% JVM_IHashCode
>        0   0.0% 100.0%   143743   0.2% JVM_MonitorWait
>        0   0.0% 100.0%   431486   0.5% JVM_RawMonitorExit
>        0   0.0% 100.0%   659324   0.8% JVM_StartThread
>        0   0.0% 100.0% 77220036  97.3% JVM_handle_linux_signal
>        0   0.0% 100.0% 11897251  15.0% Java_java_lang_ClassLoader_defineClass1
>        0   0.0% 100.0%   271469   0.3% Java_java_lang_ClassLoader_findBootstrapClass
>        0   0.0% 100.0%   431486   0.5% Java_java_lang_Class_forName0
>        0   0.0% 100.0%   592551   0.7% Java_java_util_zip_Inflater_inflateBytes
>        0   0.0% 100.0%   134688   0.2% Java_java_util_zip_Inflater_init
>        0   0.0% 100.0%  1117359   1.4% Java_java_util_zip_ZipFile_open
>        0   0.0% 100.0% 75438262  95.0% SUNWprivate_1.1
>        0   0.0% 100.0%   296275   0.4% VerifyClassForMajorVersion
>        0   0.0% 100.0%   356982   0.4% ZIP_Open
>        0   0.0% 100.0%  1474342   1.9% ZIP_Unlock
>        0   0.0% 100.0%   176271   0.2% _GLOBAL__sub_I_eh_alloc.cc
>        0   0.0% 100.0%   176271   0.2% _GLOBAL__sub_I_eh_alloc.cc (inline)
>        0   0.0% 100.0% 59721527  75.2% __clone
>        0   0.0% 100.0%   176271   0.2% __static_initialization_and_destruction_0 (inline)
>        0   0.0% 100.0%   176271   0.2% _dl_init_internal
>        0   0.0% 100.0%   176271   0.2% _dl_start_user
>        0   0.0% 100.0%   131184   0.2% fork1
>        0   0.0% 100.0% 78084060  98.4% imalloc (inline)
>        0   0.0% 100.0% 78084060  98.4% imalloc_body (inline)
>        0   0.0% 100.0%   592551   0.7% inflate
>        0   0.0% 100.0%   592551   0.7% inflateBackEnd
>        0   0.0% 100.0%   134688   0.2% inflateInit2_
>        0   0.0% 100.0% 78084060  98.4% je_malloc_default
>        0   0.0% 100.0% 78084060  98.4% prof_alloc_prep (inline)
>        0   0.0% 100.0% 59721527  75.2% start_thread
图表也附在后面

需要一些帮助来了解问题所在

环境是: Centos 7 Java 1.8.0 GCC 9

谢谢!

  • 在jemalloc输出中,
    JVM\u FindSignal
    占分配的97%。这不可能是真的,因为
    JVM\u FindSignal
    不分配任何东西

    这一定是问题的结果。使用中描述的JDK调试符号安装软件包,或使用带有内置调试符号的JDK,例如

  • jemalloc
    对Java方法一无所知。它无法将JIT编译代码中的地址转换为Java方法名称。因此,jemalloc输出中有很多地址(十六进制数)

    有一个Java分析器,它可以将本机内存分配跟踪到Java代码,并将Java堆栈跟踪显示为Flame图。使用异步探查器分析
    malloc
    mprotect
    mmap
    调用有助于查找本机内存泄漏。有关详细信息,请参阅

    下面是一个使用jemalloc和async profiler分析本机分配的示例

  • 在jemalloc输出中,
    JVM\u FindSignal
    占分配的97%。这不可能是真的,因为
    JVM\u FindSignal
    不分配任何东西

    这一定是问题的结果。使用中描述的JDK调试符号安装软件包,或使用带有内置调试符号的JDK,例如

  • jemalloc
    对Java方法一无所知。它无法将JIT编译代码中的地址转换为Java方法名称。因此,jemalloc输出中有很多地址(十六进制数)

    有一个Java分析器,它可以将本机内存分配跟踪到Java代码,并将Java堆栈跟踪显示为Flame图。使用异步探查器分析
    malloc
    mprotect
    mmap
    调用有助于查找本机内存泄漏。有关详细信息,请参阅

    下面是一个使用jemalloc和async profiler分析本机分配的示例


  • 利比里亚解决了这个问题。我给出了完整的图表。谢谢阿潘金!它救了我一天!利比里亚解决了这个问题。我给出了完整的图表。谢谢阿潘金!它救了我一天!