PHP Doku:: Liefert Rechenzeiten - function.posix-times.html

Verlauf / Chronik / History: (9) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzErweiterungen zur ProzesskontrollePOSIXPOSIX Funktionenposix_times

Ein Service von Reinhard Neidl - Webprogrammierung.

POSIX Funktionen

<<posix_strerror

posix_ttyname>>

posix_times

(PHP 4, PHP 5)

posix_timesLiefert Rechenzeiten

Beschreibung

array posix_times ( void )

Gibt Informationen über die aktuelle Auslastung der CPU zurück.

Rückgabewerte

Gibt eine Reihe von Zahlenwerten mit Informationen über die Auslastung der CPU durch den aktuellen Prozess zurück. Die Indizes dieser Zahlenwerte sind:

  • ticks - die Anzahl von Clock-Ticks, die seit dem Reboot verstrichen sind.
  • utime - Benutzerzeit, die vom aktuellen Prozess verbraucht wurde.
  • stime - Systemzeit, die vom aktuellen Prozess verbraucht wurde.
  • cutime - Benutzerzeit, die vom aktuellen Prozess und dessen Kindprozessen verbraucht wurde.
  • cstime - Systemzeit, die vom aktuellen Prozess und dessen Kindprozessen verbraucht wurde.

Anmerkungen

Warnung

Diese Funktion arbeitet nicht verlässlich, weil sie bei großen Zeiträumen negative Werte zurückgeben könnte.

Beispiele

Beispiel #1 posix_times()-Beispiel

<?php

$zeiten 
posix_times();

print_r($zeiten);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [ticks] => 25814410
    [utime] => 1
    [stime] => 1
    [cutime] => 0
    [cstime] => 0
)


4 BenutzerBeiträge:
- Beiträge aktualisieren...
brain at winbot dot co dot uk
27.06.2004 3:14
doesnt work with freebsd. as stated above the clock ticks at different intervals on different platforms.

for system uptime consider piping the uptime command or similar, depending on if performance is an issue or not.
not_rich_yet at hotmail dot com
20.07.2003 1:21
If you want the output to be 'grammatically correct' then try the following code.  It will eg print '1 minute' as opposed to '1 minutes', the same goes for days and hours:

Put the following code somewhere in the head of the page code:

<?php
function uptime() {
if (!
$times = posix_times() ) {
return (
"unknown");
} else {
$now = $times['ticks'];
$days = intval($now / (60*60*24*100));
$remainder = $now % (60*60*24*100);
$hours = intval($remainder / (60*60*100));
$remainder = $remainder % (60*60*100);
$minutes = intval($remainder / (60*100));
if (
$days == 1) {$writeDays = "day";} else {$writeDays = "days";}
if (
$hours == 1) {$writeHours = "hour"; } else {$writeHours = "hours";}
if (
$minutes == 1) {$writeMins = "minute";} else {$writeMins = "minutes";}
return (
"$days $writeDays, $hours $writeHours, $minutes $writeMins");
}
}
?>

Then put this bit where you want the info displayed:

<?php
print uptime();
?>

Regards,

nry
murphy at nmc-online dot co dot uk
17.06.2003 20:01
I am not sure why, and it could just be me but on my FreeBSD system using
$time = posix_times();
$time['ticks'] is an enormous value that bears no relation to the system uptime (I tested by rebooting the system,  the number does not change).
I checked my timecounters, they tick every 10.000msec and I did the maths on the returned value and it suggested the machine had been up for over 200 days - it was reformatted about a week ago.
This could be to do with FreeBSD, or *BSD, or just *idiots like me but just check before you use the function.
 ~
FreeBSD 5.1-R, Apache 2.0.46, PHP4.3.2
rossz+php at vamos-wentworth dot org
20.11.2002 22:42
This function will return the system uptime as a human readable string such as "172 days, 18 hours, 15 minutes".  I didn't bother to handle singular so the grammar could be a bit off, e.g. 1 hours.

function uptime() {
  if (!$times = posix_times()) {
    return ("unknown");
  } else {
    $now = $times['ticks'];
    $days = intval($now / (60*60*24*100));
    $remainder = $now % (60*60*24*100);
    $hours = intval($remainder / (60*60*100));
    $remainder = $remainder % (60*60*100);
    $minutes = intval($remainder / (60*100));
    return ("$days days, $hours hours, $minutes minutes");
  }
}



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)