Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]9791[/thread]

Uptime: Deltas errechnen



<< >> 9 Einträge, 1 Seite
bloonix
 2006-05-03 16:33
#95628 #95628
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Hallo,

ich möchte gerne die Zeit zwischen diversen Aktionen
errechnen. Bislang lese ich hierfür /proc/uptime aus und rechne
einfach die Differenz beider Werte aus. Nun kann ich aber auf
das Problem treffen, dass der Wert in /proc/uptime überläuft...
32 bit, 64 bit ...

Wenn ich also uptime auslese und merke, dass der zweite
Wert kleiner ist als der erste, weiß ich, dass uptime überge-
laufen ist - mal davon abgesehen, wie oft schon übergelaufen.

Wie kann ich herausfinden, was der Maximalwert für Uptime
ist? Das heißt, ich müsste herausfinden, ob ich mich auf einer
32 oder 64 bit Maschine befinde.

Greez,
opi
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
lichtkind
 2006-05-03 16:37
#95629 #95629
User since
2004-03-22
5679 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
kennst du das Modul Benchmark?
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
bloonix
 2006-05-03 16:46
#95630 #95630
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=lichtkind,03.05.2006, 14:37]kennst du das Modul Benchmark?[/quote]
Das kann ich leider nicht verwenden... den Grund lassen wir
mal aussen vor - danke aber für den dezenten Hinweiß ;)

Kennst du eine Möglichkeit? Am besten wäre natürlich, wenn
ich die Information, die ich suche, aus dem /proc-Filesystem
lesen könnte.\n\n

<!--EDIT|opi|1146660847-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
lichtkind
 2006-05-03 17:59
#95631 #95631
User since
2004-03-22
5679 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
benutze leider noch kein linux vielleicht wer anders
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
renee
 2006-05-03 19:42
#95632 #95632
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Die meisten lesen /proc/uptime aus, wie Du es ja auch schon machst:

http://use.perl.org/~koschei/journal/5561

Aber vielleicht hilft Dir CPAN:Net::Peep::Client::Sysmonitor::Proc, CPAN:Sys::Load oder CPAN:Probe::MachineInfo weiter...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
bloonix
 2006-05-03 20:08
#95633 #95633
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=renee,03.05.2006, 17:42]Die meisten lesen /proc/uptime aus, wie Du es ja auch schon machst:

http://use.perl.org/~koschei/journal/5561

Aber vielleicht hilft Dir CPAN:Net::Peep::Client::Sysmonitor::Proc, CPAN:Sys::Load oder CPAN:Probe::MachineInfo weiter...[/quote]
Hi renee, du ahnst vielleicht schon was ich möchte...

In dem Modul von mir möchte ich gerne die Zeit festhalten,
die zwischen dem Sammeln von Statistiken vergeht, um eine
Durchschnittszeit der gesammelten Statistiken anzugeben...
Da ich uptime sowieso schon auslese, benötige ich eine
Möglichkeit, das Überlaufen von uptime zu "entdecken", damit für
diesen einen Moment kein Minuswert herauskommt...

Vielleicht müsste ich hierfür das Datum mit Uhrzeit genau
festhalten, nur die Umrechnung wäre irgendwie blöd! Da stellt
sich mir auch die Frage, ob der Minuswert, der wirklich nur alle
"497 Tage + 2 Stunden + 28 Minuten" auf 32Bit Systemen
auftreten kann - genau in diesem Moment müsste dann auch
zufällig eine Statistik abgefragt werden -, nicht erträglich ist,
wenn in der Dokumentation dieses Auftreten vermerkt ist.
Bei 64 bit Systemen wäre die Möglichkeit eines Minuswertes
sogar noch geringer.

Was meinst du? Was meint ihr?

Ansonten danke für die Module! Ist Sys::Load ein Standard-
modul?\n\n

<!--EDIT|opi|1146672642-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
betterworld
 2006-05-03 22:58
#95634 #95634
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Wenn Du nur den Unterschied wissen moechtest, warum nimmst Du dann nicht lieber die Systemzeit statt der Uptime? Die sollte eigentlich seltener ueberlaufen als die Uptime, wobei man eventuell aber das Problem hat, dass einem der ntpd dazwischenfunkt. Du koenntest vielleicht Time::HiRes verwenden, um die Zeit hinreichend genau zu erhalten.

Aus welchem Grund kannst Du das Benchmark-Modul nicht verwenden?
bloonix
 2006-05-04 01:26
#95635 #95635
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=betterworld,03.05.2006, 20:58]Aus welchem Grund kannst Du das Benchmark-Modul nicht verwenden?[/quote]
Ich versuche es zu erklären.

Beispiel:

Code: (dl )
1
2
3
4
5
6
7
8
9
use myModule;

my $obj = myModule->new($options);

while (1) {
sleep(10);
my $stats = $obj->getStats;
DoSomeThingWith($stats);
}


$stats ist eine Hashreferenz und enthält diverse Statistiken.
Nun soll es einen Hashkey geben, der die zeitliche Differenz der
Aufrufe new() und getStats() enthält. Der Autor, der die
Funktionen aufruft, soll selber nichts dafür tun müssen, er ruft
nur die beiden Funktionen auf und erhält mit $stats die
Statistiken, die er mit new($options) angefordert hat. Unter
Anderem soll er auch die zeitliche Differenz erhalten.

Wie könnte ich das mit dem Benchmark-Modul in "meinem
Modul" realisieren? Ich hab keine Ahnung, sorry. :(
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
Dubu
 2006-05-04 09:58
#95636 #95636
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Ich würde time() aus Time::HiRes verwenden.
<< >> 9 Einträge, 1 Seite



View all threads created 2006-05-03 16:33.