-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I've done some google searches but haven't found an example script for how to record the amount of CPU time used by a process.
I'm trying to profile a build system by tracing how many and what kinds of processes are started. I want to record the following information about every process within a process tree: real start time real end time CPU time used working directory executable command line (argv) Collecting the real start time/end time/cwd/exectable is fairly simple, I think I've got it. I was thinking that CPU time could be calculated by using vtimestamp: collect the vtimestamp at the start and the end of each LWP, and total them to get the CPU time for the process. However, I'm having trouble with the proc:::lwp-start probe: it seems to fire in the context of the parent process, not in the context of the new thread that's starting: bsmedberg $ sudo dtrace -s ../process-tree.d -q 32254 proc:::lwp-start pid: 32254 tid: 111341864 vtimestamp: 96036509 proc:::create pid: 32254 args[0]->pr_pid: 43113 proc:::lwp-create pid: 32254 tid: 111341864 args[1]->pr_pid: 73060628 args[0]->pr_lwpid: 74125832 vtimestamp: 95792715 proc:::exec-success pid: 43113 ppid: 32254 cwd: obj curpsinfo->pr_fname: cat proc:::exit pid: 43113 proc:::lwp-exit pid: 43113 tid: 74125832 vtimestamp: 3361917 This means I can't simply use lwp-start and lwp-exit and do vtimestamp math, because the vtimestamp of the lwp-create probe is the vtimestamp of the shell thread, not the new thread! Does anyone have an example script or suggestion how to record the amount of CPU time a process uses? Note: This is MacOS. - --BDS -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFJIZ5WSSwGp5sTYNkRAhlnAJ9hMuv00eCD6DSWYFy8BMNPHxTGqgCg4nLa y3C4zIILmCKS/SFoxjZdUX4= =R4OP -----END PGP SIGNATURE----- _______________________________________________ dtrace-discuss mailing list dtrace-discuss@opensolaris.org