CPU auslastung java.exe 25%

radiac

Bekanntes Mitglied
Hallo Leute,


ich habe hier ein Problem mit Java. Und zwar sagt mir Java ständig, das es 25 % meiner CPU belastet, was ich ziemlich viel finde. Ist das normal wegen dem GC? Oder ist mein Programm wieder bescheuert programmiert???

Es geht wie immer um mein tolles Spiel :).

Gibts dafür evt. eine performante Lösung??? Kann man den GC manuell steuern lassen mittlerweile???


Big Greetz Radiac
 
S

SlaterB

Gast
hast du einen oder 4 Kerne? bei 4 wären es quasi 100% Belastung, aber zum Glück nur auf einen der 4, oder?

GC ist bei einfachen Programmen kein Faktor oder wenn, dann auch nur weil das Programm soviel Arbeit erzeugt,
noch wahrscheinlicher ist aber irgendeine Dauerschleife im Programm selber
 

javimka

Top Contributor
Oder ist mein Programm wieder bescheuert programmiert???

Höchstwahrscheinlich schon ;)

Der GC muss nur dann arbeiten wie gestört, und 25% der CPU auslasten, wenn es soviel zu arbeiten gibt und das sollte der Programmierer verhindern. Grund könnte z.B. sein, dass eine häufig aufgerufene Methode jedesmal ein riesiges neues Objekt lokal erstellen muss, anstatt dass es als Membervariable geführt würde und somit immer auf die gleiche Referenz gespeichert wird.

Was ist es denn für ein Programm?
 

radiac

Bekanntes Mitglied
Hehe, okay.. dann liegt es nicht am GC.

Joa, leider hab ich einen 4 Kern Prozessor :p.

Das Problem ist, dass es sich bei dem Programm um einen Server handelt. Und der braucht ja immer eine dauerschleife zum überprüfen von Positionen und so... aber ich werd mal schauen ob ich da was an CPU einsparen kann....

Und mal eine ganz doofe Frage...

Kennt irgend einer von euch eine einschlägige Literatur oder Tutorial für einen GameServer???
Es gibt ja absolut garnichts im Welt Weiten Witz...

Am besten speziell für Java.
Sinnvoll wäre da natürlich das nicht das ganze Standartzeug drin steht wie ein simpler Server / Client Chat sondern schon etwas komplexer.

Aber vermutlich sind da schon viele dran gescheitert... naja schau ich mal :D

:rtfm:


Nachtrag:

Also von den 4 Kernen haben 1 und 2 = 50 % Auslastung und 3 = 30 % und 4 = 20 % ca...

Also schon ziemlich besch..... .
 
Zuletzt bearbeitet:

radiac

Bekanntes Mitglied
Wow alles gute Tipps :p xD


Denn Thread.sleep hatte ich rausgenommen auf grund syncronisationsprobs und abstürtze mit dem CLient :D. Okay werde das alles mal Checken.

@ Homer, werd mir das mal anschauen.


Danke danke... weitere Tipps sind erwünscht :D.

Manchmal braucht man ein 4 Kern Gehirn um sich alles zu merken was man alles mal abgeändert hat :D.
 

javimka

Top Contributor
jedenfalls solltest du keine ungebremste Schleifen laufen lassen. ist ja klar, dass die dann alles aufbrauchen. Wenn du 4 Kerne hast und dein Programm verwendet nur einen davon, würde ich mal das Schlagwort "Mutlithreating" in den Raum werfen. Du könntest einen Thread machen, der auf einkommende Anfragen/Jobs (was auch immer) hört (z.B. 10 oder 100 Mal pro Sekunde) und dann neue Threads startet, die diese Anfragen bearbeiten.
 

Empire Phoenix

Top Contributor
Thread.yield()

Oder eine feste tickrate einführen

Java:
Thread updatethread = new Thread(){
				public void run(){
					while(true){
						long start = System.currentTimeMillis();
						solarsys.Update();
						long end = System.currentTimeMillis();
						int timepertick = (int) (end-start);
						int sleeptime = NHGlobals.ServerTickTime - timepertick;
						if(sleeptime > 0){
							try {
								Thread.sleep(NHGlobals.ServerTickTime - timepertick);
							} catch (InterruptedException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}
						}
						
					}
				}
			};
			updatethread.setName("SolarSystem " + mapx + "-" + mapy);
			updatethread.start();
 
S

Spacerat

Gast
Wieso sollte ein GameServer eine "Busy-Waiting"-Schleife benötigen? Genügt es nicht, wenn er per [c]ServerSocket[/c] und mittels [c]accept()[/c] auf eingehende Verbindungen wartet, diese Verbindungen an einzelne Threads weiterleitet, die schliesslich den Spielstand beeinflussen?
Für dauerhafte Client-Server-Verbindungen könnten auch [c]PipedIOStreams[/c] auf beiden Seiten dieses Problem lösen. Hauptsache ist doch, man hat irgendwo ein oder zwei "blockierende" Methoden.
BTW.: Mir ist gerade iwie das Gegenteil von Busy- bzw. Active-Waiting entfallen... Dafür gab's doch auch 'nen Fachausdruck? Naja... kann ich, wenn nötig, auch wieder herbei-googlen.
 

EgonOlsen

Bekanntes Mitglied
Genügt aber normalerweise, dass die CPU nicht voll ausgelastet ist ;)
Nein, tut es nicht. Es ändert an der Auslastung an sich gar nichts.Beispiel:

Java:
public class Yield
{
  public static void main(String[] args)
  {
    long s = System.currentTimeMillis();
    do
    {
      Thread.yield();
    }
    while (System.currentTimeMillis() - s < 10000);
  }
}

Damit lastest du einen Kern 10sek für 100% aus. yield() hin oder her.
 

Empire Phoenix

Top Contributor
Deswegen ja die feste ticktime, Thread.yield hilft aber das zumindest andere programme threads noch zum zug kommen ^^, wobei bei nem quad core isses eh net so wichtig.

irklich senken kann man das nur indem man
a)feste ticktimes nimmt (alles was eine progressive welt hat,rennspiele zb, der client sollte sich hier mit seiner geschwindigkei bewegen können ^^)
b)den server eventbasiert laufen lässt (vieles mmorpg artige (aktives target auf id 500 legen, zauber2 benutzen(der wartet mithilfe von timer paar sekunden und löst dann aus)))
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Niedrige Auslastung oder ruckelfrei? Spiele- und Multimedia-Programmierung 19
L Jump-n-Run Auslastung verringern Spiele- und Multimedia-Programmierung 16
xFearofdarkness Feinde überlappen sich in Java Spiel Spiele- und Multimedia-Programmierung 3
A Minecraft Java Buch fehlermeldung Spiele- und Multimedia-Programmierung 61
yakazuqi Minecraft java.lang.Error: Watchdog Spiele- und Multimedia-Programmierung 3
L Fehler bei "Nochmal Spielen" (Java) Spiele- und Multimedia-Programmierung 1
N Minecraft Java Error Spiele- und Multimedia-Programmierung 6
M "Java Datei" Cannot be resolved to a variable Spiele- und Multimedia-Programmierung 2
1Spinne Minecraft Fabric Modding Java Error Spiele- und Multimedia-Programmierung 2
Joris Minecraft Minecraft Java Server Spiele- und Multimedia-Programmierung 6
Shanic Minecraft Minecraft Forge Server "Falsche Java Version" Spiele- und Multimedia-Programmierung 6
O Browser-basiertes online Pokerspiel mit Java Spiele- und Multimedia-Programmierung 1
M Spiel Mühle-Programmierung Java Spiele- und Multimedia-Programmierung 9
G VST-Plugins in Java verwenden Spiele- und Multimedia-Programmierung 0
P Audio Visualizer mit OpenGL in Java? Spiele- und Multimedia-Programmierung 4
P Snake Java Hilfe Spiele- und Multimedia-Programmierung 4
D Minecraft [Minecraft] Java Start Fehler (Core-Dump) Spiele- und Multimedia-Programmierung 1
T Welche packages aus der java api doku ist hilfreich zur Android Spieleprogrammierung Spiele- und Multimedia-Programmierung 2
A Programmieren eines Memorys mit Java (in Eclipse) Spiele- und Multimedia-Programmierung 5
L Sound in Java Spiel Spiele- und Multimedia-Programmierung 5
C Java findet FluidSynth nicht Spiele- und Multimedia-Programmierung 2
I Java Andere Fenster in Borderless-Mode setzen Spiele- und Multimedia-Programmierung 16
leon_krys Java-Bußgeldrechner Spiele- und Multimedia-Programmierung 5
G [Java/KryoNet/LibGDX] Mutliplayer Packet Frage Spiele- und Multimedia-Programmierung 2
P Website mit Java Backend? Spiele- und Multimedia-Programmierung 1
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
J Fertigungstechnik.. PLS HALP.. Quellcode vom Text in java-Klasse speichern Spiele- und Multimedia-Programmierung 2
E Kalah Java Implementation Spiele- und Multimedia-Programmierung 1
G [Java] Vereinfachung von Boolean Abfragen Spiele- und Multimedia-Programmierung 3
G [LibGDX/Java] ArrayList Object Speicher Spiele- und Multimedia-Programmierung 3
T Java 3D Spiele- und Multimedia-Programmierung 2
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
J Java Buttons Spiele- und Multimedia-Programmierung 6
T Java Kalender Spiele- und Multimedia-Programmierung 5
Ice4P4rty Java Optische Oberfläche Spiele- und Multimedia-Programmierung 2
MABY Eine mp3 Datei in Java abspielen Spiele- und Multimedia-Programmierung 14
D Java Bomberman Probleme java.lang.NullPointerException Spiele- und Multimedia-Programmierung 1
N Spiele-Menü in Java Spiele- und Multimedia-Programmierung 9
J HDMI Ausgänge mit Java programmieren? Spiele- und Multimedia-Programmierung 18
H Yu-Gi-Oh! Mit Java was tun? Spiele- und Multimedia-Programmierung 6
G Component System Java 2D Game LibGDX Spiele- und Multimedia-Programmierung 6
S Pong java.lang.StackOverflowError Spiele- und Multimedia-Programmierung 3
C Java aus Klasse rausgehen Spiele- und Multimedia-Programmierung 2
MaxG. Java Internet Radio Spiele- und Multimedia-Programmierung 6
G [Java Server] Allgemeine Frage zum Thema Networking in Videospielen Spiele- und Multimedia-Programmierung 15
P java.lang.NoClassDefFoundError: in Greenfoot Spiele- und Multimedia-Programmierung 0
G Java Achsen invertieren Spiele- und Multimedia-Programmierung 2
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
$ Einstieg in Java Game Development Spiele- und Multimedia-Programmierung 11
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
BraunBerry Java Game verbesserte Kollisionserkennung Spiele- und Multimedia-Programmierung 18
BraunBerry Java Game Waypoint System Spiele- und Multimedia-Programmierung 3
S Hilfe bei Java Gui Spiele- und Multimedia-Programmierung 2
D Java sound pulseaudio Spiele- und Multimedia-Programmierung 0
David Schwarzbeck Java 3 dimensionale Kollisions Abfrage Spiele- und Multimedia-Programmierung 2
M Gesellschaftsspiel Mühle in Java programmieren Spiele- und Multimedia-Programmierung 3
beatles Java Minesweeper - OS X und Win7 Unterschied Spiele- und Multimedia-Programmierung 2
D Minecraft Java JDK installiert - Minecraft läuft nichtmehr in 64 Bit Spiele- und Multimedia-Programmierung 2
E TMX - Dateien in Java laden Spiele- und Multimedia-Programmierung 1
K Erstellen eines Fotoalbums mit Java Spiele- und Multimedia-Programmierung 8
windl MoviePlayer in Java Spiele- und Multimedia-Programmierung 0
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
F Klausurersatz: Ein Java-Programm erstellen und dieses präsentieren. Spiele- und Multimedia-Programmierung 2
E Java Jump and Run Map zu groß Spiele- und Multimedia-Programmierung 14
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
J programm mit java-plugin Spiele- und Multimedia-Programmierung 2
D Java Webgame, welche Frameworks oder Techs sind von Nöten? Spiele- und Multimedia-Programmierung 5
P Java 2D Bug? Spiele- und Multimedia-Programmierung 8
T Problem mit Eclipse (java)-(minecraft) Spiele- und Multimedia-Programmierung 3
R Java App sendet Midi Daten über Flash Spiele- und Multimedia-Programmierung 3
O Java Zeile aus Textdatei zufällig ausgeben Spiele- und Multimedia-Programmierung 8
K Bestes Bildformat für Spielegrafiken und deren Einbindung in Java Spiele- und Multimedia-Programmierung 2
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Spiele- und Multimedia-Programmierung 1
T Alle Referenzen zu einer Klasse aus Java Bytecode ersetzt, JVM sucht trotzdem diese Klasse Spiele- und Multimedia-Programmierung 1
J Java Kollisionsabfrage Spiele- und Multimedia-Programmierung 21
Flo. android java tastatureingaben abfangen. Spiele- und Multimedia-Programmierung 1
J Java Steuerberechnung hilfe Spiele- und Multimedia-Programmierung 17
C Export als .jar funktioniert nicht richtig (JAVA 3D) Spiele- und Multimedia-Programmierung 5
P Java Grafiken mit Rechnungen verknüpfen Spiele- und Multimedia-Programmierung 4
U Minecraft Mit Java auf Minecraft Server anmelden Spiele- und Multimedia-Programmierung 11
F Das sag mir einer Java ist plattform unabhänig ! Spiele- und Multimedia-Programmierung 10
C virtueller stereomix (java sound API) Spiele- und Multimedia-Programmierung 0
S Engine2D - Java 2D Engine Spiele- und Multimedia-Programmierung 20
J Java Game performance Probleme Spiele- und Multimedia-Programmierung 7
C Java Kollisionserkennung Spiele- und Multimedia-Programmierung 4
U Blender in Java Spiele- und Multimedia-Programmierung 8
J Java Fussballspiel Player-KI in der Bewegungsphase Spiele- und Multimedia-Programmierung 4
K Java 15/Slide/Boss Puzzle Spiele- und Multimedia-Programmierung 2
T Java 3D - Step oder IGES Spiele- und Multimedia-Programmierung 1
H 3D Spiele mit Java - Diskussion Spiele- und Multimedia-Programmierung 35
X Kleines Problem mit Java Reflections und einem eigenen Eventhandler Spiele- und Multimedia-Programmierung 1
M Bilder in Java Spiele- und Multimedia-Programmierung 7
A Minecraft Java Ubuntu Minecraft Server startet nicht - ERROR (SIGSEGV) Spiele- und Multimedia-Programmierung 7
N Minecraft java lernen minecraft Spiele- und Multimedia-Programmierung 20
J 2d Ansicht mit Java 3d Spiele- und Multimedia-Programmierung 13
F Abbyy finereader aus java starten, Ergebnis zurück? Spiele- und Multimedia-Programmierung 2
P Zeichenübungen mit Java Spiele- und Multimedia-Programmierung 4
M Minecraft weitere Java Entwickler für minecraft projekt gesucht Spiele- und Multimedia-Programmierung 0
I Minecraft Java programmierungs fehler "MineCraft" Spiele- und Multimedia-Programmierung 6
J Java 2D Sicht Spiele- und Multimedia-Programmierung 13

Ähnliche Java Themen

Neue Themen


Oben