如何找出调试符号的含义

时间:2019-01-25 08:16:26

标签: java linux performance jvm

我正在分析Java(OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.18.04.1-b12))应用程序,该应用程序主要由I/O文件到套接字组成。数据是从文件中读取的,即时压缩后发送到套接字。

我用perf进行了一些cpu周期采样,并得到了以下图片:

enter image description here

我注意到的是sys_futex消耗了大部分CPU(精确地_raw_spin_unlock_irqrestore-11.44%),并且我从其名称中猜测的所谓_ZN12GCTaskThread3runEnv符号与{{ 1}}。

问题:

  1. 如何找出此符号GC的作用?

  2. 为什么_ZN12GCTaskThread3runEnv es(futexfutex_wait)的CPU使用时间最多?我期望由于futex_wake活跃度高而导致的copy_user_enhanced_fast_string会高居榜首,但在所示示例中仅需要I/O

AFAIK 0.56%代表等待I / O事件,但是为什么它消耗的CPU比I / O本身更多?

0 个答案:

没有答案