我对了解垃圾收集器的启动时间感兴趣&在执行Java应用程序期间结束。我一直在阅读提供此类信息的JVMTI文档(http://docs.oracle.com/javase/7/docs/platform/jvmti/jvmti.html)。我还找到了一个关于如何使用这些事件的示例(例如http://code.metager.de/source/xref/openjdk/jdk8/jdk/src/share/demo/jvmti/gctest/gctest.c)。
请注意,该示例创建一个新线程(每当JVMTI_EVENT_VM_INIT发生时执行 - 回调在第173,178和179行中设置)并且RunAgentThread(第120-121行)接收此新创建的线程。我已将其修改为不创建线程(即注释行173,178和179),并且代理似乎以相同的方式工作。那么,是否有必要创建此代理程序线程来监视GC活动?如果是这样,为什么?