I've some questions with regard to debugging and profiling Java applications. Can you help me, please?
1. Why do we need some parameters to enable the debugging on the start of an application, but we don't need them to enable the profiling? Doesn't the profiling require an agent as debugging does?
2. I've seen that one can debug an application choosing its PID (process ID) or connecting to a socket indicated on the start-up of that application, which allows to debug a remote JVM for example. Why can't we use a socket to profile too?
I've read that JVMTI (Java Virtual Machine Tools Interface) replaced JVMPI (Java Virtual Machine Profiling Interface) and JVMDI (Java Virtual Machine Debug Interface), so I expected an uniform or homogeneus behaviour.
He got surgery to replace his foot with a pig. He said it was because of this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop