Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
cpucycles(3)							  cpucycles(3)

   NAME
       cpucycles - count CPU cycles

   SYNOPSIS
	      #include <cpucycles.h>

	      long long	count =	cpucycles();
	      long long	persecond = cpucycles_persecond();
	      const char *implementation = cpucycles_implementation();
	      const char *version = cpucycles_version();

       Link with -lcpucycles.  Old systems may also need -lrt.

   DESCRIPTION
       cpucycles()  returns an estimate	for the	number of CPU cycles that have
       occurred	since an unspecified time in the past  (perhaps	 system	 boot,
       perhaps program startup).

       Accessing true cycle counters can be difficult on some CPUs and operat-
       ing  systems.   cpucycles()  does its best to produce accurate results,
       but selects a low-precision counter if the only other option  is	 fail-
       ure.

       cpucycles_persecond()  returns an estimate for the number of CPU	cycles
       per second.  This estimate comes	from /etc/cpucyclespersecond  if  that
       file  exists,  otherwise	from various OS	mechanisms, otherwise from the
       cpucyclespersecond environment  variable	 if  that  is  set,  otherwise
       2399987654.

       cpucycles_implementation()  returns  the	 name  of  the counter in use:
       e.g., "amd64-pmc".

       cpucycles_version()  returns  the  libcpucycles	version	 number	 as  a
       string: e.g., "20240318".  Results of cpucycles_implementation()	should
       be interpreted relative to cpucycles_version().

       cpucycles  is  actually	a  function pointer.  The first	call to	cpucy-
       cles() or cpucycles_persecond() or  cpucycles_implementation()  selects
       one of the available counters and updates the cpucycles pointer accord-
       ingly.  Subsequent calls	to cpucycles() are thread-safe.

   SEE ALSO
       gettimeofday(2),	clock_gettime(2)

								  cpucycles(3)

Want to link to this manual page? Use this URL:
<
https://man.freebsd.org/cgi/man.cgi?query=cpucycles&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help