I'm looking to time parts of a program using libuv commands.  I call one of 
the following time commands before and after a chunk of code is run and 
take the difference to get the time for the code.  My goal is to find a 
time metric which isn't influenced by the load on the machine while 
executing the code. Here are some options in libuv with links to libuv code:
* Use uv_hrtime, which returns clock time with nanosecond resolution.  In 
linux, this calls clock_gettime; I'm not certain how important the _COARSE 
business is or not  http://bit.ly/1DorhB0
* Use uv_getrusage, which returns user and system time with microsecond 
resolution. In linux, this eventually calls task_utime and task_stime  
http://fla.st/1Ff7umH
* Finally, I can call uv_cpu_info, which on linux reads from /proc/stat in 
the function read_times. See line 658 of http://bit.ly/1DorhB0

I'm calling libuv from Julia, and am working to check the impact of garbage 
collection.  I don't think there is significant overhead for calling C from 
Julia, but will continue to investigate that. I'm trying to test code that 
is both on the order of tens of us to hundreds of ms. The first two options 
above (uv_hrtime and uv_getrusage) still seem to be influenced by the 
system load on the 32-core machines that I'm testing on.   For uv_rusage I 
tried both the sum of the system and user time and just the user time.    
The third option (uv_cpu_info) seems heavy since I'm just trying to time 
short chunks of code. Do any of you have suggestions for how to time a 
short section of code in a way that is independent of the system load?

Thanks

-- 
You received this message because you are subscribed to the Google Groups 
"libuv" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to libuv+unsubscr...@googlegroups.com.
To post to this group, send email to libuv@googlegroups.com.
Visit this group at http://groups.google.com/group/libuv.
For more options, visit https://groups.google.com/d/optout.

Reply via email to