[Eclipse] OS.WaitMessage altijd @ 50% cpu load

Pagina: 1
Acties:

  • Red devil
  • Registratie: December 1999
  • Laatst online: 16:54
We hebben een Eclipse RCP applicatie gebouwd. Een tijdje geleden is een profile sessie gedaan om wat performance problemen op te lossen.
Tijdens het profilen kwam het volgende probleem aan het licht, het lijkt alsof het object org.eclipse.swt.internal.win32.OS.WaitMessage constant 50% cpu kracht vraagt.
Check http://genenetworks.biol....fotos/fotos/hotspots.html voor een screenie
Zou het een foutje in de profiler applicatie kunnen zijn? Zo niet, enig idee hoe we dit kunnen verhelpen?

  • The Fox NL
  • Registratie: Oktober 2004
  • Laatst online: 14-02 22:37
Zomaar een suggestie, maar is dit niet iets in de categorie: Mijn System Idle Process neemt 99% van de tijd in beslag?

Verwijderd

Doh :+ .

De profiler meet niet hoeveel processor tijd er gebruikt wordt maar hoe lang de tijdsperiode is tussen het binnenkomen in een functie en deze weer verlaten. Een wait functie zal dus bijna per definitie heel lang duren, zonder daadwerkelijk cpu tijd te verbruiken.

  • Red devil
  • Registratie: December 1999
  • Laatst online: 16:54
Verwijderd schreef op donderdag 15 juni 2006 @ 16:13:
Doh :+ .

De profiler meet niet hoeveel processor tijd er gebruikt wordt maar hoe lang de tijdsperiode is tussen het binnenkomen in een functie en deze weer verlaten. Een wait functie zal dus bijna per definitie heel lang duren, zonder daadwerkelijk cpu tijd te verbruiken.
Zou dat niet betekenen dat methodes die een bepaalde wait() methode aanroepen automatisch tot hotspot bestempeld worden?

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

Ja, maar dat is toch ook zo? Een stuk code met een wait erin duurt lang.. En dat is wat een profiler meet. Of je daar nou daadwerkelijk sleep't of op een I/O wacht o.i.d (wat ook geen cpu tijd kost), het duurt een bepaalde tijd, en die tijd wil je weten.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-12-2025
Gelukkig zijn de meeste profilers iets slimmer. Anders zou je multi-threaded software permanent op meer dan 100% cpu load lopen als je't op een single-core draait: er draait hooguit 1 thread dus alle anderen staan in de wait.

Ik gok dat het probleem eerder is dat de waits heel erg kort maar frequent zijn.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

Inderdaad, profile anders een klein programma dat om de 10 seconden een stukje tekst naar de console schrijft, en je houdt die pauze met sleep();, Houd vooral tijdens het gebruik het processor gebruik (daadwerkelijke belasting) in je task-manager of ~list bij.
Pagina: 1