strace两个java实例

时间:2014-03-02 17:47:35

标签: java execution system-calls strace

我想跟踪java进程的执行情况。 为此,我使用strace来分析它。

我写了两个基本程序。

Prog1:简单的你好世界

Prog2:使用大量Sysout进行素数计算。通过很多我真的意味着很多!!

我正在使用strace:strace java classfile

程序都正常工作。但是,当我比较他们的线索时,他们的输出是相同的,即系统调用及其顺序。

我的疑问是:

  1. 这可能是什么原因?
  2. 学习java程序的正确方法是什么?
  3. 正在打印的语句不是strace的一部分......实际上在strace输出中没有写入系统调用?

1 个答案:

答案 0 :(得分:1)

默认情况下,程序 strace 不会跟踪子进程。但是,Java VM在流程的早期创建了实际工作的子进程。这就是为什么两个不同的程序在用 strace 调用时产生相同结果的原因。

要跟踪子进程,请使用选项-f strace ,即:

strace -f java Hello