ActivePerl Documentation
|
NAMETime::HiRes - High resolution ualarm, usleep, and gettimeofday
SUPPORTED PLATFORMS
SYNOPSISuse Time::HiRes qw( usleep ualarm gettimeofday tv_interval ); usleep ($microseconds); ualarm ($microseconds); ualarm ($microseconds, $interval_microseconds); $t0 = [gettimeofday]; ($seconds, $microseconds) = gettimeofday; $elapsed = tv_interval ( $t0, [$seconds, $microseconds]); $elapsed = tv_interval ( $t0, [gettimeofday]); $elapsed = tv_interval ( $t0 ); use Time::HiRes qw ( time alarm sleep ); $now_fractions = time; sleep ($floating_seconds); alarm ($floating_seconds); alarm ($floating_seconds, $floating_interval);
DESCRIPTIONThe If your system lacks The following functions can be imported from this module. No functions are exported by default.
EXAMPLESuse Time::HiRes qw(usleep ualarm gettimeofday tv_interval); $microseconds = 750_000; usleep $microseconds; # signal alarm in 2.5s & every .1s thereafter ualarm 2_500_000, 100_000; # get seconds and microseconds since the epoch ($s, $usec) = gettimeofday; # measure elapsed time # (could also do by subtracting 2 gettimeofday return values) $t0 = [gettimeofday]; # do bunch of stuff here $t1 = [gettimeofday]; # do more stuff here $t0_t1 = tv_interval $t0, $t1; $elapsed = tv_interval ($t0, [gettimeofday]); $elapsed = tv_interval ($t0); # equivalent code # # replacements for time, alarm and sleep that know about # floating seconds # use Time::HiRes; $now_fractions = Time::HiRes::time; Time::HiRes::sleep (2.5); Time::HiRes::alarm (10.6666666); use Time::HiRes qw ( time alarm sleep ); $now_fractions = time; sleep (2.5); alarm (10.6666666);
C APIIn addition to the perl API described above, a C API is available for extension writers. The following C functions are available in the modglobal hash: name C prototype --------------- ---------------------- Time::NVtime double (*)() Time::U2time void (*)(UV ret[2]) Both functions return equivalent information (like Here is an example of using NVtime from C:
double (*myNVtime)();
SV **svp = hv_fetch(PL_modglobal, "Time::NVtime", 12, 0);
if (!svp) croak("Time::HiRes is required");
if (!SvIOK(*svp)) croak("Time::NVtime isn't a function pointer");
myNVtime = (double(*)()) SvIV(*svp);
printf("The current time is: %f\n", (*myNVtime)());
AUTHORSD. Wegscheid <wegscd@whirlpool.com> R. Schertler <roderick@argon.org> J. Hietaniemi <jhi@iki.fi> G. Aas <gisle@aas.no>
REVISION$Id: HiRes.pm,v 1.20 1999/03/16 02:26:13 wegscd Exp $ $Log: HiRes.pm,v $ Revision 1.20 1999/03/16 02:26:13 wegscd Add documentation for NVTime and U2Time. Revision 1.19 1998/09/30 02:34:42 wegscd No changes, bump version. Revision 1.18 1998/07/07 02:41:35 wegscd No changes, bump version. Revision 1.17 1998/07/02 01:45:13 wegscd Bump version to 1.17 Revision 1.16 1997/11/13 02:06:36 wegscd version bump to accomodate HiRes.xs fix. Revision 1.15 1997/11/11 02:17:59 wegscd POD editing, courtesy of Gisle Aas. Revision 1.14 1997/11/06 03:14:35 wegscd Update version # for Makefile.PL and HiRes.xs changes. Revision 1.13 1997/11/05 05:36:25 wegscd change version # for Makefile.pl and HiRes.xs changes. Revision 1.12 1997/10/13 20:55:33 wegscd Force a new version for Makefile.PL changes. Revision 1.11 1997/09/05 19:59:33 wegscd New version to bump version for README and Makefile.PL fixes. Fix bad RCS log. Revision 1.10 1997/05/23 01:11:38 wegscd Conditional compilation; EXPORT_FAIL fixes. Revision 1.2 1996/12/30 13:28:40 wegscd
Update documentation for what to do when missing Revision 1.1 1996/10/17 20:53:31 wegscd Fix =head1 being next to __END__ so pod2man works Revision 1.0 1996/09/03 18:25:15 wegscd Initial revision
COPYRIGHTCopyright (c) 1996-1997 Douglas E. Wegscheid. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
|