If the system supports process accounting, and accounting is enabled, then there may be records available in the process accounting file, e.g. on RedHat Linux:
$ grep -q BSD_PROCESS_ACCT=y /boot/config-* && echo hooray
hooray
$ sudo touch /var/log/pacct
$ sudo accton /var/log/pacct
$
...
$ sudo accton # turn it off
Parsing the acct(5)
file is left as an exercise to the reader.
However, this is global, so may not be suitable for a system with a heavy load of new process creation. Per-process, the getrusage(2)
call should yield CPU and memory stats, possibly via a wrapper with the RUSAGE_CHILDREN
flag to report on child processes you are interested in.
Network bandwidth may be more difficult to obtain, especially on a per-process basis.
Other tools, such as DTrace or Ftrace may also be of interest.
htop
that provides a more graphical interpretation oftop
.. Not sure if it has everything your looking for but definitely worth investigating..