performance fragen zu AWT, Swing

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hallo,

ich habe ein snake-spielchen gemacht, was aber irgendwie sich komisch verhält.

es "ruckelt", aber nich wirklich, bzw. nich immer. es ist schwer zu beschreiben, aber man hat ja immer so
ein gefühl, wenn etwas nich ganz flüssig läuft. man kann nie genau sagen, wann es jetzt geruckelt hat usw,
dafür läuft das ganze auch zu schnell.

aber es ist eben so ein ruckel-feeling drin beim zocken. man merkt einfach, dass da etwas nicht ganz passt.

ich hab keine ahnung woran das liegen könnte.
ich würde ehrlich gesagt gerne jemanden finden, der mal kurz drüber fliegt über mein programm.

es sind so 4 oder 5 klassen, alle ca. 100 zeilen code. wichtig sind ja nur so array-durchläufe und paint-methoden für swing und so.
am besten ariol oder so, oder jemand anders, der aus meinem anderen thread schon etwas ahnung hat, was ich da mache..

bringt ja jetzt nix, ewig viel code zu posten. würde halt jmd. ne pn schreiben, bzw. alles hochladen rapdishare oder so und ihm nen link geben.

einfach mal so grobes code-überfliegen, was da schlecht gemacht ist, und evtl. zu solchen performance probs führen kann. am besten ihr startet das game auch schnell und zockt ein wenig, um euch selbst n bild von zu machen.
kann man halt leider nicht in worte fassen, und ich gleich 2 mal nicht, weil ich die geschwindigkeit von java mit swing udn so nicht abschätzen kann.

hm, ja. also wenn da jemand etwas lust zu hat auf so ne grobe analyse, wäre ich sehr sehr erfreut darüber.

denn ich weiss, dass man jedes programm sch*** und gut coden kann. bei mir isses wohl eher ersteres, und scheinbar so sehr, dass so ein peinliches mini game ruckelt ???:L
 

JPKI

Top Contributor
Ohne es spielen zu müssen: Versuch mal DoubleBuffering. Dabei erstellst du ein BufferedImage, welches in einer in einem Extra-Thread laufenden Methode bemalt wird. In der paint(-Component)-Methode zeichnest du nur dieses Image, sonst nichts.
 

Wildcard

Top Contributor
Swing verwendet bereits eine Buffer Strategy. Davon abgesehen löst ein BufferedImage keine Performanceprobleme, sondern verhindert Artefakte beim Bildwechsel.
 

JPKI

Top Contributor
Das isses doch, was ihn stört, oder? Außerdem hat er ja nicht gesagt, ob er AWT oder Swing benutzt.
 

hdi

Top Contributor
hallo, ich habe jetzt mal die GEschwindigkeit runtergeschraubt, um mal richtig analysieren zu können,
was da dieses ruckel-gefühl verursacht.

und ich bin mir jetzt ziemlich sicher, dass es nix mit swing zu tun hat, sondern mit ein oder zwei implementierungen von methoden. der wurm "stoppt" immer einen cycle, aber nur direkt vor einer frucht, bevor er sie aufisst.
da hab ich wohl irgendwo n logischen fehler drin.

aber das is nich das einzige. auch an anderen stellen kommt die bewegung nicht flüssig vor.
mit artefakten hat das ja nix zu tun, also das ist hier wohl kein puffer-problem.

ich schätze jetzt einfach, dass ich da noch einige fehler drin hab. sie sind nur schwer zu finden, weil sie ja schon so schwer auszuformulieren sind. naja, das überfliegen des codes ist noch immer n angeobt :cool:
 

hdi

Top Contributor
okay, also ich brauche wohl doch eure hilfe, bzw. euer hintergrundwissen.

das spiel ruckelt immer wieder kurz, ich erkenne keine regelmässigkeit.
das kann ja eigentlich nur heissen, dass da irgendwas nicht schnell genug nachkommt, denn
wenn es z.B. daran liegen würde, wie ich den wurm bewege und zeichne, würde es ja immer so sein.

das spiel läuft immer so 3-5 sekunden flüssig, und dann kommt n kurzer hänger rein..
das ist auch recht frustrierend bei so einem spiel wie snake, wo man dann durchaus mal ausm bildschirm läuft,
weil es geruckelt hat.

aber was kann das sein ? welche arten von java ausführungen führen denn zu solch unterschiedlichen geschwindigkeiten.
mein spiel besteht doch lediglich aus paar array-durchläufen und n paar repaint-aufrufen.
mal gehts, dann ruckelts :(

erklärt sich denn keiner bereit, das spiel zumindest mal 30 sekunden zu spielen?
nur, damit ihr wisst was ich meine... ihr könnt denke ich da auch gleich abschätzen, woran so etwas liegt,
man kann es halt eben nicht gut beschreiben :(

also falls es jemand kurz anzocken will:

http://rapidshare.com/files/88935286/yas2.jar.html

ausführen mit
java -cp yas2.jar:. Snake

mfg
 

Wildcard

Top Contributor
hdi hat gesagt.:
erklärt sich denn keiner bereit, das spiel zumindest mal 30 sekunden zu spielen?
nur, damit ihr wisst was ich meine... ihr könnt denke ich da auch gleich abschätzen, woran so etwas liegt,
Nein, zu sehen das es ruckelt genügt definitiv nicht für eine Diagnose.
 

JPKI

Top Contributor
Also ich kann da beim besten Willen keinen Ruckler erkennen. Das Spiel läuft wirklich flüssig ???:L .
 
G

Guest

Gast
neee :shock:
wie lange hast du gespielt? in der regel merkt man das nach spätestens 15 bis 20 sekunden.

das läuft nich flüssig, ab und zu hat es hänger, und die merkt man wirklich ziemlich intensiv.
zumindest bei mir ???:L

und es regt mich so auf, weil ich nicht weiss wieso.

okay, ich bin anfänger in sachen programmieren, und man kann es sicherlich ressourcen-sparender programmieren, aber ein pc heutzutage dürfte doch mit solchen dinge NULL probelme haben. oder nicht?

is ja nich so, dass ich überkrasse 3d-effekt benutze :p
es nervt mich extrem, dass so ein simples spiel so komisch läuft, weil es vorallem echt den spielspass drückt.... :bloed:
 
G

Guest

Gast
okay, ich bin anfänger in sachen programmieren, und man kann es sicherlich ressourcen-sparender programmieren, aber ein pc heutzutage dürfte doch mit solchen dinge NULL probelme haben. oder nicht?

Dürfte er. Aber durch geschickte Programmierung legt man ihn schnell lahm. Da genügen in der Regel wenige Zeilen Code :).

Bei mir läufts aber auch ohne Ruckler ...
 
G

Guest

Gast
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)

ich habe 1GB ram, kA wieviel die VM davon zugteilt bekommt, aber ich hab nen standart rechner für die heutigen verhältnisse, da dürfte nix faxen machen.

ich glaube noch immer nicht, dass es bei euch flüssig läuft. ich habs nochmal gespielt, wahrscheinlich fällt es mir halt krasser auf weil ich schon so darauf achte.. es ist wie gesagt unregelmässig. vllt seht ihr es einfach nicht.

aber ich habe nun eine idee: ich würde gerne in meine hautpschleife vor jedem aufruf der move-funktion von wurm einen zeitmesser anbringen, und mir auf der console die verstrichene zeit anzeigen lassen.
nur kucken, ob es wirklich immer 100ms sind, was ich eben nicht glaube.

wie heisst die java-klasse für sowas? gibt doch sicherlich ne funktion, die die systemzeit als long zurückgibt oder so?

mfg
 

JPKI

Top Contributor
Anonymous hat gesagt.:
ich glaube noch immer nicht, dass es bei euch flüssig läuft.
Frechheit! Als ehemaliger Profizogger weiss ich ganz genau wann was ruckelt und wann nicht. Und dein Spiel ruckelt definitiv nicht.
Anonymous hat gesagt.:
gibt doch sicherlich ne funktion, die die systemzeit als long zurückgibt oder so?
Ja. java.lang.System#currentTimeMillis() oder java.lang.System#nanoTime(), wobei nanoTime() genauer ist.

P.S.: Zeig doch mal den Schleifen-Code.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Viele ActionListener (MouseListener) - Performance AWT, Swing, JavaFX & SWT 24
missy72 JavaFX Performance / ImageView in TableView über TimeLine AWT, Swing, JavaFX & SWT 1
L JavaFX ListCell Performance AWT, Swing, JavaFX & SWT 10
E Swing Miserable Performance beim Ändern der Hintergrundfarbe von JLabels AWT, Swing, JavaFX & SWT 3
W Swing Performance bei Griderstellung verbessern AWT, Swing, JavaFX & SWT 15
C Pixel-Rendering/Animation Performance in BufferedImage AWT, Swing, JavaFX & SWT 1
I JavaFX Graphics Performance AWT, Swing, JavaFX & SWT 2
S Swing Performance bei Verschachtelung problematisch AWT, Swing, JavaFX & SWT 0
R Performance Drag and Drop & Timer AWT, Swing, JavaFX & SWT 3
O AWT Performance und Bug behebung[brauche Hilfe] AWT, Swing, JavaFX & SWT 2
T Swing Allgemeines Problem mit der Performance bei DragAndDrop AWT, Swing, JavaFX & SWT 2
T Prüfen ob 2 JLabel übereinander liegen. Performance Problem. AWT, Swing, JavaFX & SWT 5
S Swing Lauftext Performance Probleme, in größerer Anwendung AWT, Swing, JavaFX & SWT 6
B Performance-Probleme AWT, Swing, JavaFX & SWT 17
D DefaultTableCellRenderer - Performance AWT, Swing, JavaFX & SWT 3
hdi Swing [Umfrage] Swing Performance AWT, Swing, JavaFX & SWT 27
B 2D-Grafik BufferedImage Performance AWT, Swing, JavaFX & SWT 3
C Performance-Problem beim Überschreiben von paintComponent() AWT, Swing, JavaFX & SWT 2
Hausmeister JTable mit Bildern - Performance AWT, Swing, JavaFX & SWT 5
J JTree Performance AWT, Swing, JavaFX & SWT 2
Developer_X Swing Graphics2D translate zerstört performance AWT, Swing, JavaFX & SWT 2
hdi Swing JTable: Mein CellRenderer ist ein Performance-Killer? AWT, Swing, JavaFX & SWT 7
J Performance bei mouseMoved(...) AWT, Swing, JavaFX & SWT 4
L JFreeChart - Performance bei PNG-Erstellung AWT, Swing, JavaFX & SWT 5
P seltsame Performance Probleme bei 2 Guis abhängig vom Aufruf AWT, Swing, JavaFX & SWT 8
G Performance beim Zeichnen erhöhen? AWT, Swing, JavaFX & SWT 21
hdi bitte um performance ratschläge AWT, Swing, JavaFX & SWT 31
T (Java 6) Thumbnails in JFileChooser - Performance steigern? AWT, Swing, JavaFX & SWT 3
hdi schlechte performance bei simplem swing AWT, Swing, JavaFX & SWT 9
G Probleme mit Performance bei einer Tabelle AWT, Swing, JavaFX & SWT 16
M Performance SWT ??? AWT, Swing, JavaFX & SWT 8
D performance problem: paintcomponent, alphacomp, bufferedImag AWT, Swing, JavaFX & SWT 10
P SWT: StyledText Performance steigern? AWT, Swing, JavaFX & SWT 2
T Performance Problem bei BufferedImage AWT, Swing, JavaFX & SWT 3
P SWT Performance : "Text" - Ausgabe beschleunigen ? AWT, Swing, JavaFX & SWT 21
O performance g2d.drawImage() AWT, Swing, JavaFX & SWT 17
D Performance Probleme Jtable AWT, Swing, JavaFX & SWT 4
N Performance (BufferStrategy?) AWT, Swing, JavaFX & SWT 2
F Problem mit Transparenz, MouseEvents und Performance AWT, Swing, JavaFX & SWT 3
O LookAndFeel und Performance AWT, Swing, JavaFX & SWT 7
W Performance verbessern AWT, Swing, JavaFX & SWT 2
S TableCellRenderer, Performance AWT, Swing, JavaFX & SWT 9
S Performance-Problem: JTextArea als Logging-Window AWT, Swing, JavaFX & SWT 8
thor_norsk Allgemeine Fragen AWT, Swing, JavaFX & SWT 6
thor_norsk Allgemeine Fragen AWT, Swing, JavaFX & SWT 4
U Zwei Fragen zu eienr Swing Aufgabe AWT, Swing, JavaFX & SWT 2
K JavaFX Allgemeine Fragen zu dem Aufbau eines Programms hinsichtlich der Klassen AWT, Swing, JavaFX & SWT 1
D Fragen zur GUI AWT, Swing, JavaFX & SWT 4
M NetBeans JFrame Grundlangen fragen AWT, Swing, JavaFX & SWT 6
T JavaFX Allgemeine Fragen zu JavaFX (uA zu Properties) AWT, Swing, JavaFX & SWT 6
D Panel wird nicht angezeigt und Fragen zum CardLayout AWT, Swing, JavaFX & SWT 6
K Fragen zu JavaFx Canvas AWT, Swing, JavaFX & SWT 0
N Swing Fragen zu non-modal JDialog AWT, Swing, JavaFX & SWT 1
Q Fragen zur JMenuBar & Co. AWT, Swing, JavaFX & SWT 3
F DefaultTreeCellEditor - Fragen zur Groesse und zum Icon beim Editieren AWT, Swing, JavaFX & SWT 4
Kenan89 JMenu Fragen AWT, Swing, JavaFX & SWT 5
Luk10 (LWJGL) Fragen zu VBOs AWT, Swing, JavaFX & SWT 21
M Swing JTextPane + Scrollbar = Fragen AWT, Swing, JavaFX & SWT 15
S Fragen zu JList AWT, Swing, JavaFX & SWT 3
J Das erste Projekt und ein Haufen von Fragen. Der SudokuReader. AWT, Swing, JavaFX & SWT 4
Luk10 Fragen zum Laden von Fonts AWT, Swing, JavaFX & SWT 4
Luk10 Fragen zum Koordinaten System AWT, Swing, JavaFX & SWT 3
M JTable Grundlegende Fragen AWT, Swing, JavaFX & SWT 4
B Prozentrechner GUI Fragen AWT, Swing, JavaFX & SWT 4
H Fragen zu JPanel und JButton AWT, Swing, JavaFX & SWT 3
Q Swing Zeichenprogramm, grundlegende Fragen AWT, Swing, JavaFX & SWT 8
U Swing Fragen bezüglich Multithreaded GUIs (Grundlagen): AWT, Swing, JavaFX & SWT 3
R LayoutManager GridBagLayout Fragen AWT, Swing, JavaFX & SWT 10
A diverse Layout-Fragen AWT, Swing, JavaFX & SWT 4
M LayoutManager Einige Fragen zum GridBagLayout AWT, Swing, JavaFX & SWT 13
H Swing Zwei Fragen AWT, Swing, JavaFX & SWT 5
S 2D-Grafik Diverse Fragen zu Imagemanipulation in Java AWT, Swing, JavaFX & SWT 11
C Swing Grundsätzliche Fragen zu MVC AWT, Swing, JavaFX & SWT 8
F 3 Fragen zu Applets AWT, Swing, JavaFX & SWT 4
L Klick auf JTable -> EditorPane manipulieren, Fragen zu TableModel AWT, Swing, JavaFX & SWT 9
S Fragen zu GridBagLayout AWT, Swing, JavaFX & SWT 6
B Zeichnen in Swing - Jede Menge Fragen! AWT, Swing, JavaFX & SWT 2
D Fragen zu Swing, paintComponent() und repaint AWT, Swing, JavaFX & SWT 6
D GridBagLayout und JEditorPane (mehrere fragen) AWT, Swing, JavaFX & SWT 2
A Swing einfache fragen zu frame AWT, Swing, JavaFX & SWT 10
P Mehrere Fragen AWT, Swing, JavaFX & SWT 4
A Fragen zu Microber AWT, Swing, JavaFX & SWT 4
C Mehrer Fragen zu großem kompletten Swing Beispiel AWT, Swing, JavaFX & SWT 5
T Fragen zu JList und DnD AWT, Swing, JavaFX & SWT 13
I Einige Fragen zu JList AWT, Swing, JavaFX & SWT 6
I Drei Fragen/Probleme mit einer JTable AWT, Swing, JavaFX & SWT 9
G Fragen zum FileChooser AWT, Swing, JavaFX & SWT 5
M 2 Kleine Fragen zum JOptionFrame AWT, Swing, JavaFX & SWT 5
J Fragen zu JTable und JScrollpane AWT, Swing, JavaFX & SWT 2
R Frage zu Listfeld oder jTable, auch andere Fragen AWT, Swing, JavaFX & SWT 5
C Fragen zur Darstellung einer JTable mittels Renderer AWT, Swing, JavaFX & SWT 2
ModellbahnerTT Fragen zu AWT AWT, Swing, JavaFX & SWT 3
S Fragen Databinding? AWT, Swing, JavaFX & SWT 3
J Fragen zu AWT Komponenten AWT, Swing, JavaFX & SWT 5
U 2 Fragen zu BufferedImages AWT, Swing, JavaFX & SWT 19
J Fragen zur Vererbung und Update AWT, Swing, JavaFX & SWT 12
J Fragen zum SyntaxHighlighting (DefaultStyledDocument) AWT, Swing, JavaFX & SWT 2
I Ein paar SWT Fragen AWT, Swing, JavaFX & SWT 10
P Zwei Fragen zu Bildern in Applets AWT, Swing, JavaFX & SWT 2
isowiz Einige Fragen zur ersten eigenen Sing-Applikation AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben