sysctl with KERN_BOOTTIME option vs. gettimeofday()

View: New views
2 Messages — Rating Filter:   Alert me  

sysctl with KERN_BOOTTIME option vs. gettimeofday()

by mkotlov :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi everyone,
I am doing a port of C++ code from Windows to FreeBSD and need to
replace function GetTickCount(), which is used mostly for the purposes
of obtaining elapsed time (e.g. as a millisecond timer). As I
understand it, there are two ways to do that: 1) via sysctl() function
with CTL_KERN&KERN_BOOTTIME options and 2) via gettimeofday(). In both
case, struct timeval is returned, so I can compute the difference
between the two times and get the elapsed time.

I am wondering if anyone could tell me performance implications of
using sysctl() function call to obtain system boot time vs.
gettimeofday(). Is one better than the other? More efficient? Are
there advantages or disadvantages to using either of these two
methods? Any insight would be appreciated.

Thanks very much in advance,
Mari.
_______________________________________________
freebsd-performance@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "freebsd-performance-unsubscribe@..."

Re: sysctl with KERN_BOOTTIME option vs. gettimeofday()

by Pieter de Goeje :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tuesday 17 March 2009 16:17:55 Mari Kotlov wrote:

> Hi everyone,
> I am doing a port of C++ code from Windows to FreeBSD and need to
> replace function GetTickCount(), which is used mostly for the purposes
> of obtaining elapsed time (e.g. as a millisecond timer). As I
> understand it, there are two ways to do that: 1) via sysctl() function
> with CTL_KERN&KERN_BOOTTIME options and 2) via gettimeofday(). In both
> case, struct timeval is returned, so I can compute the difference
> between the two times and get the elapsed time.
>
> I am wondering if anyone could tell me performance implications of
> using sysctl() function call to obtain system boot time vs.
> gettimeofday(). Is one better than the other? More efficient? Are
> there advantages or disadvantages to using either of these two
> methods? Any insight would be appreciated.
>
> Thanks very much in advance,
> Mari.

For the purpose of determining the elapsed time between two measurements, I
can recommend clock_gettime(2) w/ CLOCK_MONOTONIC as clock_id.

Sysctl is definately not meant to be used for this, as it is not portable and
has probably more overhead than clock_gettime() or gettimeofday().

- Pieter
_______________________________________________
freebsd-performance@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "freebsd-performance-unsubscribe@..."