# Time::HiRes
π¦ std
High-resolution timers and sleeps: microsecond `gettimeofday`, sub-second `sleep`, `alarm`, and POSIX clocks.
Mirrors perl5-modules/Time-HiRes-1.9764/HiRes.xs.
All functions operate through the perl5 C API (p5api).
## Functions
### Other Functions
#### `time`
`HiRes.xs:1393-1406` β time()
#### `gettimeofday`
`HiRes.xs:1375-1391` β gettimeofday()
#### `usleep`
`HiRes.xs:1139-1171` β `usleep($microseconds)`
#### `nanosleep`
`HiRes.xs:1175-1191` β `nanosleep($nanoseconds)`
#### `sleep`
`HiRes.xs:1207-1247` β `sleep($seconds)`
#### `alarm`
`HiRes.xs:1296-1343` β `alarm($seconds, $interval=0)`
#### `ualarm`
`HiRes.xs:1265-1293` β `ualarm($usecs, $interval)`
#### `setitimer`
`HiRes.xs:1414-1445` β `setitimer($which, $value, $interval)`
#### `getitimer`
`HiRes.xs:1447-1465` β `getitimer($which)`
#### `clock_gettime`
`HiRes.xs:1567-1582` β `clock_gettime($clock_id)`
#### `clock_getres`
`HiRes.xs:1598-1615` β `clock_getres($clock_id)`
#### `clock`
`HiRes.xs:1673-1682` β clock()
#### `clock_nanosleep`
`HiRes.xs:1631-1651` β `clock_nanosleep($clock_id, $nsec, $flags)`
#### `tv_interval`
`tv_interval(\@t0, \@t1?)` β pure Perl in `HiRes.pm`, native here
#### `utime`
`HiRes.xs:1471-1551` β `utime($atime, $mtime, @files)`
#### `stat_impl`
`HiRes.xs:1696-1735` β stat/lstat with nanosecond timestamps. TODO: perl5 creates a fakeop and calls pp_stat to populate PL_statcache. We do direct libc stat. -M/-A/-C after Time::HiRes::stat() wonβt see cached result.