Announcement

Collapse
No announcement yet.

100%-CPU-Auslastung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 100%-CPU-Auslastung

    Hi Leute,
    hab eine erste Java-Applikation fertig, gepackt in einem jar-Archiv. Das Programm wird mit <br>
    "java -cp %CLASSPATH%;meinArchiv.jar meinArchiv.MainClass" <br>
    gestartet. Läuft auch alles fehlerfrei. Das Problem ist nur, dass mir der Taskmanager von Windows eine 98 - 100 %ige CPU-Auslastung anzeigt.<br>
    Warum ist das so? Wie kann ich das verbessern?

    Vielen Dank für Eure Hlfe im voraus.

    Ciao<br>
    Robert

  • #2
    Hallo,

    ist so schwierig zu sagen. Hast du Threads implementiert? oder irgendwelche Schleifen?

    Thoma

    Comment


    • #3
      Hi Thomas,

      ja ein Thread ist implementiert. Den hab ich aber auch schon mal rausgenommen, was die Auslastung absolut nicht beeindruckte

      Comment


      • #4
        nochmals hallo!
        Dein Tip mit den Schleifen ist goldrichtig - mir fällts nämlich gerade wie Schuppen von den Augen....<br>
        hab doch irgenwann in grauer Vorzeit eine Endlosschleife ziemlich versteckt zu Testzwecken eingebaut. Werd ich jetzt mal wieder rausnehmen.<br>

        Manchmal braucht man halt so einen externen Denkanstoss. <br>
        Vielen, vielen Dank.<br>
        Ciao Rober

        Comment


        • #5
          Falls dein Problem immer noch nicht gelöst sein sollte, dann liegt es oft an den Threads, diese laufen oft in endlosschleifen und verlangen in diesem Moment 100% der Rechenleistung. Soll das ganze aber ständig ablaufen macht es sich nicht gerade schön eine Auslastung von 100% zu haben. Und so hat ein Therad nunmal die Methode sleep(long ms) mit welcher er in regelmäßigen abständen die Rechenleistung für diese Zeit freigibt. Dies hat den Vorteil das die Auslastung immer nur kurzzeitig 100% beträgt und andere Bereiche des Systems sich genau diese Lücken zwischen denn 100% raussuchen um ihre Arbeit zu verrichten..

          Nun ich glaube das du das schon wissen solltest, aber es könnte ja einer in das Forum gelangen und das Problem haben. Und wie praktisch.. hier steht die Lösung.

          mfG Tobias Oelgart

          Comment


          • #6
            Ups!

            was du hier beschreibst ist ein busy wait und soll tunlichst vermieden werden! Für solche Zwecke nimmt man beispielsweise das wait() notify() Paar

            Thoma

            Comment


            • #7
              Hi,

              muss gleich los, und will noch ein bischen Forum lesen, aber mir fällt da noch als Stichwort yield() ein.

              Gruss

              Jürgen

              PS: Busy-Waits sind wirklich nicht fein ;-

              Comment

              Working...
              X