[java] prog dat zich net zo gedraagt als de koe *

Pagina: 1
Acties:

  • Goldme
  • Registratie: September 2000
  • Laatst online: 29-08 13:40
Ik ben bezig met een programma in JAVA die intensief gebruik gaat maken van de CPU. Dat programma moet zich netzo gedragen als de koe:

De overgebleven CPU cycles gebruiken om te berekenen zonder beslag te leggen op de hele CPU. In de achtergrond werken dus.

Met mijn huidige opzet slokt de thread(want dat is hetgene wat er gerund wordt) de CPU cycles op en wordt de computer heel langzaam.

Ik kan de priority van de thread instellen maar ik weet niet of dat van toepassing is op de verzameling threads binnenin het proces(wat het dus waardeloos maakt aangezien er maar 1 thread loopt in mijn programma) of de verzameling threads in het hele systeem.

Weet iemand een goede en efficiente manier om de overgebleven cycles voor de thread te kunnen gebruiken?

  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Hier stond een droge opmerking

  • Goldme
  • Registratie: September 2000
  • Laatst online: 29-08 13:40
Op dinsdag 26 februari 2002 21:02 schreef MisterData het volgende:
Een icon in de system tray is zowieso al niet mogelijk :+
Ik vat de ironie niet :?

  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Ik dacht dat dat altijd het geval was bij zo'n DPC koetje, dat er zo'n icoontje verscheen onderin :? Nou ja, misschien beetje droge opmerking, dus nu weer ON topic :

Ik denk helaas dat de Java VM niet multithreaded is, dwz dat de priorities alleen effect hebben op andere java-threads. Ik weet het niet zeker, maar check de Sun docs es over Threading :) Staat het vast wel in :)

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Het probleem is dus dat je moet weten hoeveel % de processor vrij heeft qua cycles en dit ook (voor een aantal cycles van te voren ) houdt of vermeerd.

Maare wat wil je hem laten doen dan? Blowfish kraken :D

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op dinsdag 26 februari 2002 21:01 schreef Goldme het volgende:
Ik kan de priority van de thread instellen maar ik weet niet of dat van toepassing is op de verzameling threads binnenin het proces(wat het dus waardeloos maakt aangezien er maar 1 thread loopt in mijn programma) of de verzameling threads in het hele systeem.
:? :? :?

hoeveel threads heb je nou? En je moet duidelijker uitleggen wat je wil, want ik snap hier niet veel van.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

En je weet dat je [Java] voor je topic titel moet plaatsen met je hoeveelheid posts!

Verwijderd

Heb je al geprobeerd de thread gewoon 'MIN_PRIORITY' te geven, dan krijgt dus alleen de thread waarvoor je dit instelt minimale priority. Ik weet niet of in java MIN_PRIORITY erop neer komt dat ie alleen actief is als de cpu idle is, maar dat lijkt me wel.

edit:

Na even googlen zag ik ergens dat de invokeLater(..) method uit java.awt.EventQueue je ook OnIdle functionaliteit schijnt te geven...

Verwijderd

beetje offtopic, maar als het echt zo intensief wordt is het misschien verstandig om ook eens naar assembly te kijken.
Misschien dat je je berekeningen wat kan optimaliseren. Dat scheelt je sowieso.

  • Goldme
  • Registratie: September 2000
  • Laatst online: 29-08 13:40
Op dinsdag 26 februari 2002 23:36 schreef Klaas het volgende:
beetje offtopic, maar als het echt zo intensief wordt is het misschien verstandig om ook eens naar assembly te kijken.
Misschien dat je je berekeningen wat kan optimaliseren. Dat scheelt je sowieso.
Dit programma steunt zwaar op objecten en manipulatie van die objecten. Dat assembly programma zou dan heel ingewikkeld en lang zijn, en zo ervaren ben ik niet met assembly hoewel ik er wel mee heb gewerkt(niet meer dan een programma die je invoer spiegelt en afrdukt).

Ik heb juist voor java gekozen vanwege de netheid en overzichtelijkheid. Het programma werkt dan ook perfect naar behoren ware het niet dat het de resources van de CPU opslokt. Ik moet een manier vinden om dit programma te laten bedaren als er CPU-cycles nodig zijn voor andere processen.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 27 februari 2002 12:05 schreef Goldme het volgende:
Ik heb juist voor java gekozen vanwege de netheid en overzichtelijkheid. Het programma werkt dan ook perfect naar behoren ware het niet dat het de resources van de CPU opslokt. Ik moet een manier vinden om dit programma te laten bedaren als er CPU-cycles nodig zijn voor andere processen.
Draai het op een NT/unix-variant en stel de prioriteit van je java VM in (in unix: 'nice 20 java jeclasss', in windows NT is dat iets met 'start /prio ...')

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Kun je de prioriteit van de JVM niet omlaag gooien? Hierdoor krijgt de JVM de vrije cycles met hetzelfde resultaat.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1