John Pettitt wrote:

Brad Knowles wrote:

At 4:53 PM +0000 2005-09-29, John Pettitt wrote:

I don't agree with Brad that 10ms is as good as it gets,
   If your HZ= setting is 100, then 10ms is, by definition, as good
as it gets.  At least, when it comes to measuring short-term single
event clock timing matters.


No HZ is not the gating factor because the system returns a time based
on the processor cycle count (*)    On my FreeBSD Celeron box a tight
loop calling gettimeofday() shows an average increment of 1.4
microseconds per loop and yes the values change on every call.

John
(*) on machines with APM enabled all bets are off because the CPU
frequency is not stable.
_______________________________________________
questions mailing list
[email protected]
https://lists.ntp.isc.org/mailman/listinfo/questions

I just grabbed the following bit of code off the net (version shown is minus a time burning nested loop).
*****************************************************************************
* FILE: gettime.ex.c
* DESCRIPTION: Demonstrates use of the gettimeofday function
* LAST REVISED: 01/09/96 Blaise Barney
*****************************************************************************/

#include <stdio.h>
#include <sys/time.h>
#include <time.h>
#define ARRAY_SIZE      1000
#define SEED            1995

float a[ARRAY_SIZE][ARRAY_SIZE];
float b[ARRAY_SIZE][ARRAY_SIZE];
float c[ARRAY_SIZE][ARRAY_SIZE];
struct timeval start_time, end_time;

main()
{
  int i, j;
  int total_usecs;

  /* First, call gettimeofday() to get start time */
  gettimeofday(&start_time, (struct timeval*)0);

  /* Time wasting nested loops removed. */

  /* Now call gettimeofday() to get end time */
  gettimeofday(&end_time, (struct timeval*)0);  /* after time */

  /* Print the execution time */
  total_usecs = (end_time.tv_sec-start_time.tv_sec) * 1000000 +
                (end_time.tv_usec-start_time.tv_usec);
}

I compiled, linked, and ran it on a Sun Ultra 10 with Solaris 8 and got a elapsed times of one or two microseconds in a dozen tries. So 10ms is not necessarily "as good as it gets" on Solaris either.

_______________________________________________
questions mailing list
[email protected]
https://lists.ntp.isc.org/mailman/listinfo/questions

Reply via email to