SetPriorityClass

Antworten
Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

SetPriorityClass

Beitrag von Mathias »

Gibt es so etwas auch für Linux ?

Code: Alles auswählen

SetPriorityClass(GetCurrentProcess, HIGH_PRIORITY_CLASS);
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Achtzig
Beiträge: 90
Registriert: Mo 15. Okt 2007, 13:09
OS, Lazarus, FPC: Debian
CPU-Target: xxBit

Re: SetPriorityClass

Beitrag von Achtzig »

Unter Linux kann die Prozesspriorität mit fpSetPriority gesetzt werden. Die aktuelle Prozesskennung kann mit FpGetpid ermittelt werden. Beides befindet sich in der Einheit BaseUnix.

http://www.freepascal.org/docs-html/rtl/baseunix/fpsetpriority.html

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: SetPriorityClass

Beitrag von Mathias »

So wie es aussieht, gibt es nichts Plattform übergreifendes ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: SetPriorityClass

Beitrag von Mathias »

Ich wollte die mal ausprobieren.

https://linux.die.net/man/3/setpriority

Gemäss diese Linkes, habe ich folgendes probiert.

Code: Alles auswählen

  ShowMessage(IntToStr(fpGetPriority(PRIO_PROCESS,FpGetpid)));
  fpSetPriority(PRIO_PROCESS, FpGetpid, -20);
  ShowMessage(IntToStr(fpGetPriority(PRIO_PROCESS,FpGetpid)));


ShowMessage spuckt 2x "20" aus.

Das selbe geschieht auch, wen ich zB. -10 eingebe.

Was mache ich falsch ?

Am liebsten möchte ich eine möglichst hohe Prozesspriorität, aber nicht so viel, das alles blockiert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

shokwave
Beiträge: 470
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: SetPriorityClass

Beitrag von shokwave »

Wenn man dem Link von Achzig folgt und noch 'n bissl weiter klickt, kommt man zu http://www.freepascal.org/docs-html/rtl/baseunix/fpnice.html

Da steht dann folgender Satz
Only the superuser can specify a negative N, i.e. increase the rate at which the process is run.


Ich hab es selber nicht probiert, könnte mir aber gut vorstellen, dass das dein Problem ist. Probier doch mal dein Programm mit sudo zu starten.

Hoffe das hilft dir weiter.
mfg Ingo

Antworten