> From: [EMAIL PROTECTED] > Date: Sun, 5 Aug 2001 21:06:38 +0200 > > I would like to implement profiling in M4, but my knowledge is poor > (I don't even know how to get some precise time from the system, The standard portable ways to do that are clock_gettime (which has nanosecond resolution) and gettimeofday (which has only microsecond resolution, but is a tad more portable in practice, and on Solaris anyway is implemented via a dedicated kernel entry so it's a bit faster). If you're willing to be unportable you can do better, e.g. the gethrtime() and gethrvtime() functions of Solaris 8 give you nanoseconds of real and execution time. If you really want to go off the deep end, I suppose you could also do hardware profiling a la Perfmon (for Solaris) <http://www.cps.msu.edu/~enbody/perfmon.html> or Rabbit or perfctr (for Linux) <http://www.scl.ameslab.gov/Projects/Rabbit/> <http://www.csd.uu.se/~mikpe/linux/perfctr/> > counting by second is certainly not fine enough, and worse yet, I > don't even have the slighest idea of how to get durations that are > not penalized by the profiling itself. I wouldn't worry about it for this application; the profiling cost is relatively small, and can be approximately-subtracted anyway. For ideas about how to implement profiling in M4, I suggest looking to see how the Python folks did it, as I suspect that the problems are similar. For starters, please see: http://www.python.org/doc/current/lib/profile.html
