```{index} single: Time::HiRes; Perl module ``` # Time::HiRes ```{pperl-module-badges} Time::HiRes ``` 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.