ref: f7fb3612ecd0fac6a68c812403a82666e49c6acf
dir: /sys/man/2/cputime/
.TH CPUTIME 2 .SH NAME cputime, times, cycles \- cpu time in this process and children .SH SYNOPSIS .B #include <u.h> .br .B #include <libc.h> .PP .ta \w'\fLdouble 'u .B long times(long t[4]) .PP .B double cputime(void) .PP .B void cycles(uvlong *cyclep) .SH DESCRIPTION If .I t is non-null, .I times fills it in with the number of milliseconds spent in user code, system calls, child processes in user code, and child processes in system calls. .I Cputime returns the sum of those same times, converted to seconds. .I Times returns the elapsed real time, in milliseconds, that the process has been running. .PP These functions read .BR /dev/cputime , opening that file when they are first called. .PP .I Cycles reads the processor's timestamp counter of cycles since reset, if any, and stores it via .IR cyclep . Currently supported architectures are .BR 386 , .BR amd64 , .B arm64 and .BR power ; on all others, .I cycles will store zero. .SH SOURCE .B /sys/src/libc/9sys .br .B /sys/src/libc/*/cycles.[cs] .SH SEE ALSO .IR exec (2), .IR cons (3) .SH BUGS Only .B 386 processors starting with the Pentium have timestamp counters; calling .I cycles on earlier processors may execute an illegal instruction.