BSD::getloadavg - Perl Interface to getloadavg


NAME

BSD::getloadavg - Perl Interface to getloadavg (3)


SYNOPSIS

  use BSD::getloadavg;
  my @loadavg = getloadavg();


DESCRIPTION

This module allows you to access load average without invoking uptime(1). Instead of

  my @loadavg = (qx(uptime) =~ /([\.\d]+)\s+([\.\d]+)\s+([\.\d]+)/);

You can simply

  use BSD::getloadavg;
  my @loadavg = getloadavg();


COMPATIBILITY

Though named BSD::getloadavg, this module also works on Linux and other platforms that support getloadavg. To find if your platform supports this module, Just

  nm /usr/lib/libc.* | grep getloadavg


BENCHMARK

You can run benchmark with t/benchmark.pl. Here is the result in my platforms.

MacBook Pro 2GHz, Mac OS X 10.4.8
  Benchmark: running XS, command for at least 3 CPU seconds...
             Rate command      XS
  command  1061/s      --    -98%
  XS      69808/s   6482%      --
Dual Xeon 2.8GHz, FreeBSD 6-Stable
  Benchmark: running XS, command for at least 3 CPU seconds...
              Rate command      XS
  command    919/s      --    -99%
  XS      139023/s  15026%      --

EXPORT

getloadavg()


SEE ALSO

getloadavg(5)
Also available as http://www.freebsd.org/cgi/man.cgi. Since getloadavg is in libc in most platform, Makefile.PL needed no tweaking. If you find a platform that does not have getloadavg in libc, please report.

the Sys::CpuLoad manpage
This module accesses load average via /proc or uptime command. Therefore the performance is analogous to the benchmark above.

the BSD::Sysctl manpage
Seems like the most versatile module in this arena. Unfortunately most platform-dependent also. Works only on FreeBSD as of Version 0.06.


AUTHOR

Dan Kogai, <dankogai@dan.co.jp>


COPYRIGHT AND LICENSE

Copyright (C) 2006-2007 by Dan Kogai

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.

 BSD::getloadavg - Perl Interface to getloadavg