Priorität heruntersetzen
Priorität heruntersetzen
am 05.06.2006 19:59:47 von Matthias Taube
Gibt es die Möglichkeit, für einen Abschnitt eines Perlprogrammes
die Priorität herabzusetzen?
Unter Bash kann ich zwar mit nice ein ganzes Script herunterstufen, aber
geht das auch innerhalb eines Scriptes?
mfg
Matthias Taube
Re: Prioritätheruntersetzen
am 05.06.2006 20:12:55 von Roman Racine
Matthias Taube wrote:
> Gibt es die Möglichkeit, für einen Abschnitt eines Perlprogrammes
> die Priorität herabzusetzen?
>
> Unter Bash kann ich zwar mit nice ein ganzes Script herunterstufen, aber
> geht das auch innerhalb eines Scriptes?
Mit dem Modul POSIX geht das. POSIX::nice() ist das, was du suchst. Die
Beschreibung findest du unter perldoc POSIX und man 2 nice.
Gruss
Roman°
--
Ärger in den NGs? Frust im Usenet?
IRC-Freenode: #usenet-friends hilft weiter.
Besuch mich auf http://albasani.net/cgiirc/irc.cgi
Re: Priorität heruntersetzen
am 05.06.2006 20:37:37 von Matthias Taube
Roman Racine schrieb:
> Mit dem Modul POSIX geht das. POSIX::nice() ist das, was du suchst. Die
> Beschreibung findest du unter perldoc POSIX und man 2 nice.
Danke, das habe ich gesucht.
Funktioniert eigentlich
POSIX::nice(10);
.... Perl-Code ...
POSIX::nice(-10);
trotz der Aussage: "Normal user processes can only be more polite." in
der Doku?
mfg
Matthias Taube
Re: Prioritätheruntersetzen
am 05.06.2006 20:57:41 von Paul Hink
Matthias Taube wrote:
> Funktioniert eigentlich
>
> POSIX::nice(10);
>
> ... Perl-Code ...
>
> POSIX::nice(-10);
>
> trotz der Aussage: "Normal user processes can only be more polite."
> in der Doku?
Nein. Warum hast du das nicht einfach ausprobiert?
Paul
Re: �
am 05.06.2006 21:05:23 von Matthias Taube
Paul Hink schrieb:
> Nein. Warum hast du das nicht einfach ausprobiert?
Weil es nicht so einfach ist die effektive Priorität des eigenen Prozess
herauszufinden.
Wobei mir gerade als Möglichkeit "system ("ps alx") einfällt.
mfg
Matthias Taube
Re: Prioritätheruntersetzen
am 05.06.2006 21:06:13 von Paul Hink
Roman Racine wrote:
> POSIX::nice() ist das, was du suchst.
Alternativ die Perl-Funktion setpriority (`perldoc -f setpriority`,
`man 2 setpriority`).
Paul
Re: ?
am 05.06.2006 21:31:42 von Paul Hink
Matthias Taube wrote:
> Paul Hink schrieb:
>
>> Nein. Warum hast du das nicht einfach ausprobiert?
>
> Weil es nicht so einfach ist die effektive Priorität des eigenen
> Prozess herauszufinden.
>
> Wobei mir gerade als Möglichkeit "system ("ps alx") einfällt.
Alternativ eins davon:
| system(nice);
| print getpriority(PRIO_PROCESS, 0) . "\n";
Oder man prüft direkt, ob POSIX::nice einen Fehler zurückgemeldet hat
(das ist ohnehin empfehlenswert):
| $ perl -e 'use POSIX qw(nice); nice(10) || die "+10: $!"; nice(-10) || die "-10: $!";'
| -10: Permission denied at -e line 1.
| $
Paul