Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Java
You last visited: Today at 12:04

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Java Cache und Perfomance

Discussion on Java Cache und Perfomance within the Java forum part of the Coders Den category.

Reply
 
Old   #1

 
xEncounter's Avatar
 
elite*gold: 22
Join Date: Nov 2009
Posts: 1,552
Received Thanks: 361
Java Cache und Perfomance

Hey,

Habe ein Spiel mit Slick2d framework geschrieben, aber es zieht viel Performance, dass schwächere Rechner sich aufhängen.

Gibt es eine Möglichkeit ressourcen zu cachen oder gibt es allg. Perfomance Killer oder Tipps zur Optimierung oder vorladen ?
xEncounter is offline  
Old 02/13/2015, 14:59   #2
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Gibt viele Möglichkeiten. Kenne die engine nicht und auch nicht viele java eigene Methoden die dafür geeignet sind.
Sei kreativ beim optimieren.

Bei gdi+ Sachen die ich schon auf guis gezeichnet hab war es sinnvoll ein "fps" limit festzulegen und den cpu zu entlasten.
Was du alles cachen kannst ist vorallem von der engine vorgegeben
YatoDev is offline  
Old 02/13/2015, 20:37   #3
 
Warnuk3r's Avatar
 
elite*gold: 307
Join Date: Jul 2009
Posts: 1,091
Received Thanks: 434
Schon FPS Limit eingerichtet? Erinnere mich das man normal so viele FPS hat, dass die CPU stark ausgelastet wird. Dadurch konnte man das ganze gut eindämmen. Da hat irgendjemand Code hierfür veröffentlicht, findest du sicher in Google.
Warnuk3r is offline  
Old 02/13/2015, 22:44   #4

 
xEncounter's Avatar
 
elite*gold: 22
Join Date: Nov 2009
Posts: 1,552
Received Thanks: 361
Ich habe gehört, dass man die Framerate eben nicht limitieren soll(von meinem Lehrer).

Was stimmt den jetzt ? ^^
xEncounter is offline  
Old 02/14/2015, 01:37   #5
 
Warnuk3r's Avatar
 
elite*gold: 307
Join Date: Jul 2009
Posts: 1,091
Received Thanks: 434
Meine CPU ist so krass ran genommen worden ist, weil da sicher 6000 FPS am Start waren, wenn ich mich richtig erinnere. Als ich sie zu 60 limitiert habe, war alles wieder ok. Dir müssten doch die FPS angezeigt worden sein, was willst du mit 6000?

Warnuk3r is offline  
Old 02/14/2015, 22:00   #6
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Quote:
Originally Posted by xEncounter View Post
Ich habe gehört, dass man die Framerate eben nicht limitieren soll(von meinem Lehrer).

Was stimmt den jetzt ? ^^
mein lehrer erzählt manchmal viel scheiße....

bei triple A spielen werden fps auch limitiert wenn es nötig ist(weil ein vorteil dadurch entsteht oder eben die last zu hoch ist).

wenn ich snake programmiere und da unendlich viele fps habe ist das doch total unnötig und hat nichts mehr mit gutem code zu tun
YatoDev is offline  
Old 02/15/2015, 00:40   #7
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by xEncounter View Post
Ich habe gehört, dass man die Framerate eben nicht limitieren soll(von meinem Lehrer).

Was stimmt den jetzt ? ^^
Darfst ihm dezent sagen, dass er Schwachsinn labert alleine vom Verständnis her macht es keinen Sinn die FPS nicht zu beschränken.

FPS-Definition:

Quote:
Sie bezeichnet die Anzahl der Einzelbilder bzw. Bewegungsphasen, die pro Zeiteinheit aufgenommen oder wiedergegeben werden. Eine ausreichend hohe Bildfrequenz macht sich die Nachbildwirkung und den Stroboskopeffekt zunutze und ermöglicht dem Betrachter, eine Sequenz von Einzelbildern als fortlaufende Bildfolge wahrzunehmen.

Mit dem englischen Ausdruck frames per second (kurz: fps) bzw. auf Deutsch Bildrahmen/Bilder pro Sekunde (kurz: BpS) wird die Anzahl der Einzelbilder pro Sekunde bezeichnet.

Quelle: Bildfrequenz ? Wikipedia
Was für eine Bildwiederholfrequenz besitzt dein Bildschirm?
Kommst du da auf 200 Bilder die Sekunde?
Wohl kaum...
Also warum sollte ich 200 Bilder die Sekunde berechnen lassen, wenn mein Bildschirm eh nur 60 Bilder die Sekunde anzeigen kann? Totaler Blödsinn.

Nicht umsonst werden die FPS normalerweise auf 60 beschränkt, weil 60Hz auch die weitverbreiteste Bildfrequenz ist.

Daher begrenze die FPS auf 60, wenn du ganz sicher gehen willst mach 100 draus. Das ist dann aber auch schon genug.

Mehr braucht es wohl sicher nicht, zumindest nicht für normale Spiele.
Shadow992 is offline  
Thanks
1 User
Old 02/15/2015, 15:02   #8

 
xEncounter's Avatar
 
elite*gold: 22
Join Date: Nov 2009
Posts: 1,552
Received Thanks: 361
Das Ding ist dass in dem Framework mit einem Delta Wert von der Update und Render Methode gerechnet wird.

Sprich wenn du die FPS Zahl hoch oder runterschraubst, reagiert das spiel anders.

wenn du bei Bewegungen ohne delta Zeit angaben programmierst, dann siehts immer anders aus, weil es ja dann auf deine CPU Leistung hört(die kann ja schwanken etc.).

Beim entwickeln würde es vll. Sinn machen, die fps rate nicht zu limitieren.

So würde ich das ganze sehen.
xEncounter is offline  
Old 02/16/2015, 16:06   #9


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,908
Received Thanks: 25,409
Quote:
Originally Posted by Shadow992 View Post
Darfst ihm dezent sagen, dass er Schwachsinn labert alleine vom Verständnis her macht es keinen Sinn die FPS nicht zu beschränken.

FPS-Definition:



Was für eine Bildwiederholfrequenz besitzt dein Bildschirm?
Kommst du da auf 200 Bilder die Sekunde?
Wohl kaum...
Also warum sollte ich 200 Bilder die Sekunde berechnen lassen, wenn mein Bildschirm eh nur 60 Bilder die Sekunde anzeigen kann? Totaler Blödsinn.

Nicht umsonst werden die FPS normalerweise auf 60 beschränkt, weil 60Hz auch die weitverbreiteste Bildfrequenz ist.

Daher begrenze die FPS auf 60, wenn du ganz sicher gehen willst mach 100 draus. Das ist dann aber auch schon genug.

Mehr braucht es wohl sicher nicht, zumindest nicht für normale Spiele.


Ich sehe keinen wirklichen Grund die FPS zu limitieren, solange die hohe Rate nicht anderen Threads CPU-Zeit nimmt, welche diese brauchen. Sie mag unnötig sein, aber schaden tut es auch nicht.
Dass manche Rechner sich aufhängen, könnte damit zusammenhängen, muss es aber nicht (eigentlich sollte da ja auch der Scheduler eingreifen). Man kann auch einfach mal ein bisschen CPU-Zeit mit einem yield() Aufruf abgeben, ohne dass man damit die FPS auf einen festen Wert limitiert.
MrSm!th is offline  
Old 02/16/2015, 19:54   #10
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Wie viel zeichnest du, und in welchen Methoden bzw. mit welchen Methoden zeichnest du?
XxharCs is offline  
Old 02/16/2015, 23:42   #11

 
xEncounter's Avatar
 
elite*gold: 22
Join Date: Nov 2009
Posts: 1,552
Received Thanks: 361
Meine jetzige Render Methode:

Code:
public void render(GameContainer gc, StateBasedGame game, Graphics gfx)
			throws SlickException {

		// Set Standard Color
		gfx.setColor(Color.white);

		// Draw Background at Position (0/0)

		this.level.draw();

		// Bird draw(height/width)

		this.bird.draw(50, 100);

		// Draw cloud

		this.cloud.draw();

		// Score String
		gfx.drawString("Points: " + highscore.getScore(), 10, 70);

		// Life String
		gfx.drawString("Life: " + car.getLife(), 10, 90);

		// Draw Player
		this.car.draw();

		// check if list schuss_anzahl is not empty and draws the objects
		// then
		if (!(this.shoot_count.isEmpty())) {
			for (Shot shoot_now : shoot_count) {
				shoot_now.draw();
				// gfx.draw(shoot_now.getHitbox());
			}
		}

		// checks if list monster_anzahl is not empty and draws the objects then
		if (!(this.rocket_count.isEmpty())) {
			for (Rocket rocket_now : rocket_count) {
				rocket_now.draw();
				// gfx.draw(rocket_now.getHitbox());
			}
		}
		
		this.hud.draw();
// gfx.draw(car.getHitbox());
	}
xEncounter is offline  
Old 02/17/2015, 08:40   #12
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Ich weiß jetzt nicht genau wie deine draw-Methoden aufgebaut sind, aber generell zu sagen ist, man sollte Image's startUse/drawEmbedded/endUser für bessere Perfomance mit sprite sheets verwenden, oder stratUse/renderInUse/endUse falls du Slick's sprite sheet utility verwendest.

Oder falls deine tiles undurchsichtig sind kann man die perfomance ebenfalls erhöhen/verbessern indem man blending aus-und einschaltet.
Also:
Code:
GL11.glDisable(GL11.GL_BLEND);
// -- zeichne deine tiles --
GL11.glEnable(GL11.GL_BLEND);
// -- zeichne anderes --
Eine weitere Möglichkeit wär, gewisse Bilder in ein einzig großes Texture zu laden & speichern(behalte das Texture solange das Programm läuft), und verwende es immer wieder neu beim rendern jedes einzelnen Frames. Die richtigen "Items"(nenne ichs jetzt, will ja jetzt ned Auto, Charackter usw erwähnen) zum rendern können dann so selektiert werden indem man die richtigen Texture koordinaten angibt.
XxharCs is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Perfomance seit kurzem stark verschlechtert
07/07/2014 - Technical Support - 7 Replies
Hallo, hab seit kurzem Probleme mit meiner Grafikkarte (vermute ich). Ich habe, meines Wissen, vor dieser massiven Verschlechterung nichts heruntergeladen oder am Laptop geändert, es kam für meine Ansicht recht plötzlich. Hab mal einen Benchmarktest gemacht, da ist er auch relativ schlecht abgeschnitten: http://i.gyazo.com/a0bdb71ed177ee28b451df66d520f8 d7.png Vor/Nach dem Test: http://i.gyazo.com/993f6e988d5ab09e4afa264068aac1 a8.png Während des Tests:...
Perfomance verbessern?
06/25/2011 - Technical Support - 5 Replies
Hallo miteinander Ich besitze nun seit bald 3 Jahren das gleiche Notebook (HP Pavilion). Betriebsystem war ursprünglich Vista drauf allerdings hab ich dann später selber XP drauf gepackt. Das Ding hat 1GB RAM und einen 2 kernigen Prozessor der zwischen 1,6 und 2,3 GHz taktet. Mit den Jahren wurde das Notebook aber immer langsamer und jetzt suche ich nach Möglichkeiten um es bevor es dann vollends abverreckt noch ein wenig software mässig zu "tunen". Besonders damit einige Spiele...
Medal of Honor 2010 SP Perfomance Probleme
11/16/2010 - Battlefield - 3 Replies
Tja. Im Multiplayer läufts mehr als flüssig (maxed out), und im Singelplayer nur auf niedriger Detailstufe. Liegen so viele Welten zwischen Unreal Engine 3 und der Frosbite Engine 1.5? Oder ist das etwas anderes? 1280*1024 (60 Hz) AMD 4800+ HD 5750 (512 MB DDR5) 4 GB DDR2 Valueselect Corsair Sollte eigentlich mindestens für mittlere Details reichen, oder?



All times are GMT +1. The time now is 12:06.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.