Prozesse einschränken

Status
Nicht offen für weitere Antworten.

Beren77

Mitglied
Hallo,

ich starte aus einem Java-Programm über die Runtime.getRuntime().exec Methode ein externes C-Progamm.
Das Problem ist, dass dieses Programm (dieser Prozess) im Hintergrund läuft, während das Java-Programm noch als GUI fungiert und Benutzereingaben entgegennehmen soll, während das Programm im Hintergrund rechnet.
Auf neuen Prozessoren mit Hyper-Threading-Technologie ist das auch kein Problem und es funktioniert wunderbar, auf etwas älteren Prozessoren, klappt's aber leider nicht mehr, weil die CPU-Last für das externe Programm bei 100% liegt.

Der langen Rede kurze Frage: Kann ich irgendwie (sei es in C/C++ oder in Java) die Rechenkapazität für den Prozess einschränken und ihm so etwas sagen wie "Du darfst aber nur max. 50% der CPU-Last benutzen"?

Geht das in irgendeiner Form?? (Ich habe _nicht_ den Quellcode des aufgerufenen C-Programms zur Verfügung).

Vielen Dank für die Hilfe!
Philipp
 
weiss nicht ob das geht, aber du könntest ihn ja auch immer wieder ein bisschen ins bett schicken 😉

sleep();
 
sleep glaub ich gibt nicht wirklich ressourcen frei...

ich glaube nciht, dass du einem Java Programm sagen kannst "nur soviel...." das geht mit java net
 
Hi,

erstmal danke, aber "sleep" funktioniert leider nicht.
Was ich gerade auch noch versucht habe ist, den Prozess in einem neuen Thread zu starten, dem ich vorher "MIN_PRIORITY" gegeben habe... Hilft aber leider auch nicht (wieso eigentlich nicht?? -- Das sollte doch klappen... Hmmm....).

Naja... Dann versuch' ich's wohl mal auf der C-Ebene *seufz*
 
Nö des kann gar nicht gehen, da nur der von dir gestartete Java-Thread dann mit min Priorität läuft, also wird der neue Prozess nur langsamer gestartet, aber der prozess wird von dem befehl, dass der Thread auf minPriority laufen soll nicht beeinflusst
 
deathbyaclown hat gesagt.:
sleep glaub ich gibt nicht wirklich ressourcen frei

natürlich gibt es nicht resourcen frei! aber die sleep braucht nicht so viel resourcen wie wen du den PC rechnen lässt.

habs getested. sleep verzehrt bei mir 12 % systemleistung und mit dem rechnen bin ich auf 100%!

schon klar dass das nicht di optimale lösung ist. war ja auch nur so n gedanke....
 
whau - sind das euere rechner oder was habt ihr laufen, dass ne CPU von 100% rauskommt... (habe ich nur bei endlosschleifen 🙂 )
 
deathbyaclown hat gesagt.:
whau - sind das euere rechner oder was habt ihr laufen, dass ne CPU von 100% rauskommt... (habe ich nur bei endlosschleifen 🙂 )

Oder bei Schachengines, die die Rechenzeit des menschlichen Spielers auch noch benutzen, hmm?! :wink:
 
Hallo,
ich möchte Datenobjekte auf eine angegebene begrenzte Anzahl Festplatten ermitteln. gibt's im Java eine Klasse die sowas macht? hat jemand schon mal sowas gemacht?
Grüße!
 
Klar es gibt für jedes Problem der Welt eine Klasse manchmal sogar zwei.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben