Time::HiRes - 蕭�膕上墾���alarm, sleep, gettimeofday, ��ゃ�潟�帥�若����˨�祉�帥�ゃ����
use 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);
use Time::HiRes qw( setitimer getitimer
ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF ITIMER_REALPROF );
setitimer ($which, $floating_seconds, $floating_interval );
getitimer ($which);
Time::HiRes
��≪�吾�ャ�若�˨��usleep
,ualarm
, gettimeofday
, ��������� setitimer
/getitimer
��激�鴻�������潟�若�����荐���������������育��膕上墾��勖����祉� ��帥�ゃ����若�吾�勉�吾��Perl��ゃ�潟�帥�若����с�若�鴻��絎�茖������障����� 篏帥����鴻�˨�ゃ����⓾�壚��荐����"篏睡��箴�"��祉�壔�激�с�潟�������鴻����祉�鴻�壔�ŝ�����������荀с�����������鐚� ��冴�˨�ŝ�c�⓾�����nanosleep
������������ usleep
, ualarm
, gettimeofday
, ��������� setitimer
/getitimer
��˨�ゃ����⓾�壔�������ŝ����勉�激�鴻�������勉����㏍�ャ�<�潟����� ���荀с��������������
�����ŝ����勉�激�鴻��������gettimeofday()
��������勉�������ャ�㋘�若�激�с�潟����ŝ�������違�� gettimeofday()
���綣����1��ゃ�勐就��с��tv_interval()
��壚戎�����障�������� �����ŝ����勉�激�鴻��������nanosleep()
, usleep()
, ��������� select()
,��勐����⓾�� ��ŝ�������違��Time::HiRes::usleep()
��� Time::HiRes::sleep()
��壚戎�����障�������� �����ŝ����勉�激�鴻��������ualarm()
and setitimer()
��勌検��鴻����ŝ������� Time::HiRes::ualarm()
��� Time::HiRes::alarm()
���篏帥����障��������
use
��鴻����若����<�潟����勉�ŝ����у��茖���������⓾����ŝ����∽�違����ゃ�潟����若����������������������違�� ��潟�潟����ゃ��������紊掩�������障�����
�����ŝ����卡��腱�篁ヤ�����sleep���usleep()
��с�壔�ŝ��nanosleep()
��у��茖���������⓾�������違�� nanosleep()
��壔�激�違����˨��篏帥����ŝ����勉�с��鐚�腱�篁ヤ�����sleep�����激�違����˨��羞桁����������� �����������с����障����������������������夌Щ罎���с��罨������障�������������⓾�障�����������nanosleep��� �����c�⓾�������勉�����&Time::HiRes::d_nanosleep
��勐�ゃ��true��с�������������с���� �����ŝ�������違�ŝ����障����������������������号����ŝ����������ŝ��������������nanosleep()
C API �����㏍�ャ�<�潟�����茯㏍�障�ŝ�������違�ŝ����障��������鐚�nanosleep()
�����若�喝�冴����ャ� ��ゃ�潟�帥�若����с�若�鴻�壔�������障�����;���������絨������ɱ�ゃ�у�����Time::HiRes::sleep()
��� Time::HiRes::usleep()
�����若�吟�������с�����)
sleep�����激�違����˨��羞桁��������������������nanosleep
���篏帥����ŝ�������違�� Perl���������腱���勖③腆冴�����荀�羆����������篁�篋���勉�������˩戎�����鴻�������若�˨�с�������� ��������������������������障�����
�����勉�≪�吾�ャ�若�˨�����篁ヤ����勰�∽�違����ゃ�潟����若�������������������с����障����� ��������í�˨����с����壔�鴻����若�������������∽�違�壔�������障��������
- gettimeofday ()
-
��������潟�潟����㏍�鴻����с�壔����������壔�������勛����������ゃ�壔�㊦��2��ゃ�勤��膣���勰��������菴������障����� ��鴻�˨�í�若�祉�潟�潟����㏍�鴻����с�壔��
Time::HiRes::time()
��勉�������̥����� 羌勐��絨���亥�号�違�ц�������障��鐚�筝�荐������э����� - usleep ( $useconds )
-
���絎���������������ゃ�壔�㊦����違��sleep�����障�����絎�������sleep�����������ゃ�壔�㊦����違�� 菴������障�����
usleep
��激�鴻�������祉�潟�若�˨����奝��������1腱�篁ヤ��sleep�����������������с����障����� 筝�荐����Time::HiRes::sleep()
������荀с�������������� - ualarm ( $useconds [, $interval_useconds ] )
-
ualarm
��潟�若�˨����肴�������障��;$interval_useconds
��壔�ŝ����激�с�潟�с�� ���絎���������ŝ��������0��˨�ŝ����������勛��������alarm
��勉�������ɱ�������������障����� - tv_interval
-
tv_interval ( $ref_to_gettimeofday [, $ref_to_later_gettimeofday] )
2��ゃ�勖����祉�勖��������羌勐��絨���亥�鴻�勛����違��菴������障�����2��ゃ�勖����祉��
gettimeofday()
�� 菴���������������勉�с�ŝ�������違�ŝ����障��������2��ɾ�勉�勐����違�������ャ�������������� �憜����勖����祉��篏帥�������障����� - time ()
-
羌勐��絨���亥�鴻�с����������壔�������勛����違��菴������障����������勰�∽�違�壔�ゃ�潟����若�������� �����������с����障����������勛��������Perl��勉�潟�≪�ф��箴����������綏勉��莨若�水�����
time
��� 臀勉�������������������˨�ŝ����障��;筝�荐����"篏睡��箴�"������荀с��������������羈���� 1: �����勰��膕上墾���time��壔�������ŝ����勉����í����������若�������潟�≪��
time()
��� 緇������������˨��������蕭�膕上墾��勖����祉��������筝������������������������⓾��������筝���ʃ�����腱��� ��������勉�������������˨����c�⓾����潟�≪��time()
���������紊������c��������絨���ŝ����c����� �����������������������障��������������綵���吟�������勐勲���0.5腱����莇���������������壔����������障��������羈���� 2: 2001綛�9���9��� ��ユ����� GMT��勐����� 1:46:40��������� �����������壔��������
time()
腱���壔��1_000_000_000���莇������⓾����障����� Perl��с�勉�������í�˨����勖貴���絨���亥�鴻�勉����í�若����������������������壔�������勛����違�� ��������障�c�〠����������ŝ����違��篏������冴����障��:Time::HiRes::time()
��勐�ゃ�� ��阪��������������篆�荐若��������6罅�(�����ゃ�壔�㊦��)��с�壔�ŝ��5罅���勖�医��������緇������������� ��с����障�����������綽������ŝ����������ゃ�壔�㊦����壠����������障��(�����<����������ŝ���� �����í����������若�������������勉�������ɾ��綺⓾����泣����若�������⓾����������勉����喝�������⓾����障��)��� 篏����莎激����⓾�������������������違��Perl��勖貴���絨���亥�鴻�勉�������í�˨����勉����í�若����������с� 15罅���勖�医����������阪�������障�������������勐�翫�����絨���亥�鴻�勐�����0罅���勖�医�������������� �����勐��������5罅���������障����������ゃ�壔�㊦�����荀������������˨��"%.6f"
���printf
/sprintf
�� ��í�<��������篏帥����������ŝ�鴻����祉�潟�潟����㏍�鴻�����gettimeofday()
���篏帥�������������с����障����� �����勐�翫����˨�壔��腱���������ゃ�壔�㊦�����2��ゃ����ャ�勐�ゃ�������☖�������⓾�������障����� - sleep ( $floating_seconds )
-
���絎����������腱���違��sleep�����障�����絎�������sleep������腱���違��(羌勐��絨���亥�鴻�勐�ゃ��) 菴������障����������勰�∽�違�壔�ゃ�潟����若�������� �����������с����障����������勛��������Perl��勉�潟�≪�ф��箴����������綏勉��莨若�水�����
sleep
��� 臀勉�������������������˨�ŝ����障��;筝�荐����"篏睡��箴�"������荀с�������������� - alarm ( $floating_seconds [, $interval_floating_seconds ] )
-
���絎�������腱���医�����
SIGALRM
��激�違����˨�������������障�����ualarm()
���篏帥�c� 絎�茖���������⓾����障�����$interval_floating_seconds
綣���違� ��ŝ����激�с�潟�ф��絎���������ŝ�����0��˨�ŝ����障����������勛��������alarm()
��勉������� ��������˨�ŝ����障����������勰�∽�違�壔�ゃ�潟����若�������� �����������с����障����������勛��������Perl��勉�潟�≪�ф��箴����������綏勉��莨若�水�����alarm
��� 臀勉�������������������˨�ŝ����障��;筝�荐����"篏睡��箴�"������荀с��������������羈���� 1: ��ŝ����㋘�若����c�潟�違�祉�激�鴻��������Perl��勉�ŝ�ŝ�若�鴻� 腟���水����������˨����c�⓾��
SIGALRM
���筝㊥�㏍����������勉�с�壔�ŝ�����select()
��� ������紮���������������������������障��������������alarm()
��勐�����select()
��� ������������alarm()
������絎���������������������˨�с�壔�ŝ�����alarm()
���select()
������絎������������������勐��荐������������������� ��������ŝ����������������潟����障����� - setitimer ( $which, $floating_seconds [, $interval_floating_seconds ] )
-
��ゃ�潟�帥�若����˨�祉�帥�ゃ����若�����紮���������障��;筝�絎���勖�����緇������激�違����˨��絮������� ��������������с�激�違����˨��絮����膓���������������������障����������帥�ゃ����若��罩≪�������˨�壔��
$floating_seconds
���0��˨����⓾��������������$interval_floating_seconds
�� 0������絎�������������(�����������壩��絎���������ŝ�����)�����帥�ゃ����若�壩❶��˨�激�違����˨��絮������� 緇����罩≪����������障�������ゃ�潟�帥�若����˨�祉�帥�ゃ����若��篏帥�����������
alarm()
,sleep()
���usleep()
�� �����c�☁�ʒ�������������������������障��������罔�羣������˨�壔����娯��篏������夌�劫����������⓾����障�������� ��ゃ�障�����篏����莎激�������������������障�����:��������������������障�������������������с�ŝ����������������障����������鴻�˨�í�若�祉�潟�潟����㏍�鴻����с�壔�帥�ゃ����若�с�勖��������������菴���������障�����
��ŝ�鴻����祉�潟�潟����㏍�鴻����с�壔��罧���������������ゃ�潟�帥�若����˨��菴���������障�����
���絽�3��ゃ�����������4��ゃ�勉�ゃ�潟�帥�若����˨�祉�帥�ゃ����若����ñ���櫝�純�с��:
$which
��ITIMER_REAL
,ITIMER_VIRTUAL
,ITIMER_PROF
, ������������ITIMER_REALPROF
�� �����������������с����障�������í�������ñ����с����������壚札筝���勉�������˩��絖������障��:��㋚�����UNIX �����í����������若����奝��絽御��������3��ゃ�������c�⓾����障��������������(箴�������)Win32���Cygwin��ITIMER_REAL
�����������c�⓾����障��������Solaris���ITIMER_REALPROF
��������c�⓾�������������с�� (��������壔����˨����鴻�㋘�������ŝ����㏍�違�í����������㏍����<�ゃ�˨�������������˩戎��������障��)���ITIMER_REAL
��夌��������������alarm()
��勉�������ɱ�������˨����障����� ���������絎�������;��ゃ�障��紕����荐���勖�������ц����������障����� ��帥�ゃ����若����������������˨�ŝ�����SIGALRM
��������������障�����ITIMER_VIRTUAL
���(�����㏍�祉��)篁勖�潟�勖�������ф��������荐������障��鐚� ��ゃ�障�������㏍�祉�鴻��絎�茵������⓾�������������������с����������˨�������㏍�祉�����/��⓾�若��/CPU �� ��激�鴻�������с�壔�������壠�������������������壠�����荐���勖����������壠�������c��������絨���ŝ����c����������障����� (�����勖����������⓾�若�吟�惹�����(user time)��������若�違����障�������帥�ゃ����若�� ��������������˨�ŝ�����SIGVTALRM
��������������障�����ITIMER_PROF
��壔����㏍�祉�剛皿��恰��������������������(I/O��勉��������)�����㏍�祉�鴻�勐������� ��ŝ����㋘�若����c�潟�違�祉�激�鴻��������莎違�c�⓾��������������荐������障����� (�����勖����������激�鴻�����������(system time)��������若�違����障�����) ��帥�ゃ����若����������������˨�ŝ��������SIGPROF
��������������障�����SIGPROF
�� ��激�鴻�������祉�潟�若�˨��筝㊥�㏍�������������������с����障����������˨����鴻�㋘�������ŝ����㏍�違�í����с�勉�ゃ�潟�帥�若����˨�祉�帥�ゃ����若�勖����潟� ��激�鴻�������˨�������障�������������⓾�激�鴻�������˨����c�⓾�壔����������˩���� ��ゃ�潟�帥�若����˨�祉�帥�ゃ����若����泣����若�������⓾�������������������障�������� �����ŝ�����
setitimer()
��勉����㏍�ャ�<�潟��������荀с�������������� - getitimer ( $which )
-
$which
��ф��絎������������ゃ�潟�帥�若����˨�祉�帥�ゃ����若�с�勖��������������菴������障�������鴻�˨�í�若�祉�潟�潟����㏍�鴻����с�壔��罧�������������菴���������障�����
��ŝ�鴻����祉�潟�潟����㏍�鴻����с�壩����������������ゃ�潟�帥�若����˨�勌検��鴻��菴���������障����� ��ゃ�潟�帥�若����˨�壠幻��˨��
setitimer()
���篏帥�c�������������ャ����������勉�с�����
use Time::HiRes qw(usleep ualarm gettimeofday tv_interval);
$microseconds = 750_000;
usleep $microseconds;
# 2.5腱�緇���������勐�����0.1茵���������˨�激�違����˨�祉�≪�í�若��
ualarm 2_500_000, 100_000;
# �����������壔�������勛����������ゃ�壔�㊦��������緇�
($s, $usec) = gettimeofday;
# 腟������������勤��羝
# (2��ゃ��gettimeofday��勖�祉����ゃ��綣������������˨����c�⓾���櫝�純�с��)
$t0 = [gettimeofday];
# ��������т�������☎����勐�冴�障�����絎�茵�
$t1 = [gettimeofday];
# �����������☎����勐�冴�障�����絎�茵�
$t0_t1 = tv_interval $t0, $t1;
$elapsed = tv_interval ($t0, [gettimeofday]);
$elapsed = tv_interval ($t0); # equivalent code
#
# time, alarm ��������� sleep���羌勐��絨���亥�鴻�с�勛��������������
# �����勉�х舟���������
#
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);
# �����㏍�祉�剛皿��恰�������ф��������10腱���������勐�����2.5腱���������
# �����c�⓾�������ゃ�潟�帥�若����˨�帥�ゃ����若��茖����������
use Time::HiRes qw ( setitimer ITIMER_VIRTUAL time );
$SIG{VTALRM} = sub { print time, "\n" };
setitimer(ITIMER_VIRTUAL, 10, 2.5);
��≦宍�����吾�鋋冴�˨�壚��荐����perl API�����������⓾��C API�����ñ����������������� ��ñ����с����障�����篁ヤ�����C��勰�∽�違��modglobal��������激�ャ�у�ñ����������������� ��с����障��:
��∽�医�� C�����㏍����帥�ゃ��
--------------- ----------------------
Time::NVtime double (*)()
Time::U2time void (*)(UV ret[2])
��∽�違�壚検��鴻�����(gettimeofday
��勉��������)�����������宴��菴������障����� ��������������勤;�憗����������障�����NVtime
��� U2time
�����������������壚源�� ��ŝ����㋘�若����c�潟�違�祉�激�鴻�������˩��絖������⓾����ŝ����������̹�御����������⓾����障����� (VMS��勉�������˨�������ゃ����勉����í����������若����с�壔����勉�������ャ�㋘�若�激�с�潟�� ��������⓾����障��������gettimeofday
���Unix筝㊤�������с�����)
C������NVtime
���篏帥�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 = INT2PTR(double(*)(), SvIV(*svp));
printf("The current time is: %f\n", (*myNVtime)());
綣���違�������⓾����ゃ����鴻�勖����祉��篏帥�������������障��������
篏������蚊�í�����絎潟����������障����� -- �����ゃ����鴻�˨�ŝ����壔����勉�ŝ�������ゃ�壔�㊦����違� �����ゃ����鴻�˨�ŝ�c�⓾����障����障����������潟�潟����ゃ�í��紕������⓾�������勉�����鐚�
��潟�≪��time()
��������������⓾����勉�с�壔�ŝ�����������篋���ャ�������������������ŝ���������� 羈���������⓾����������������������壔�潟�≪��time()
���gettimeofday()
��� Time::HiRes::time()
���������1腱������������������怨����������������������ŝ����������� ��������������潟����障�����
D. Wegscheid <wegscd@whirlpool.com> R. Schertler <roderick@argon.org> J. Hietaniemi <jhi@iki.fi> G. Aas <gisle@aas.no>
Copyright (c) 1996-2002 Douglas E. Wegscheid. All rights reserved.
Copyright (c) 2002,2003,2004 Jarkko Hietaniemi. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
綏����絖����(GCD00051@nifty.ne.jp)