|
You last visited: Today at 12:04
Advertisement
Java Cache und Perfomance
Discussion on Java Cache und Perfomance within the Java forum part of the Coders Den category.
02/13/2015, 12:59
|
#1
|
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 ?
|
|
|
02/13/2015, 14:59
|
#2
|
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
|
|
|
02/13/2015, 20:37
|
#3
|
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.
|
|
|
02/13/2015, 22:44
|
#4
|
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 ? ^^
|
|
|
02/14/2015, 01:37
|
#5
|
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?
|
|
|
02/14/2015, 22:00
|
#6
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Quote:
Originally Posted by xEncounter
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
|
|
|
02/15/2015, 00:40
|
#7
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by xEncounter
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.
|
|
|
02/15/2015, 15:02
|
#8
|
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.
|
|
|
02/16/2015, 16:06
|
#9
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,908
Received Thanks: 25,409
|
Quote:
Originally Posted by Shadow992
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.
|
|
|
02/16/2015, 19:54
|
#10
|
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?
|
|
|
02/16/2015, 23:42
|
#11
|
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());
}
|
|
|
02/17/2015, 08:40
|
#12
|
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.
|
|
|
 |
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.
|
|