Kann Java so leistungshungrig sein?

H

Hugoderwolf

Aktives Mitglied
Thread Starter
Dabei seit
07.03.2003
Beiträge
349
Reaktionspunkte
0
Ich sitze hier gerade in der Uni und arbeite mit zwei Kollegen als Übung für Informatik an einer Implementation von Minesweeper als Java-Applet.
Kurz gesagt haben wir hier ein Spielfeld von 30 * 16 = 480 Feldern. Für die einzelnen Felder haben wir eine Klasse geschrieben, die awt.Button erweitert und noch einige zusätzliche Funktionen für den Spielverlauf anbietet.
Wenn das Feld erstellt wird, werden als 480 Buttons kreiert, per Zufallsprinzip eine gegebene Anzahl Minen verteilt. Dann wird das ganze Feld nochmal durchlaufen und die Buttons um Minen herum bekommen ihren Kennwert erhöht.

Nunja, der Programmstart dauert diverse Minuten und anschließend verbraucht das Ding laut Aktivitäts-Anzeige so um die 90% Prozessorzeit und mehrere hundert MB Speicher! Zugegebenermaßen sind es eine Menge Buttons, aber ich kann mir nicht vorstellen, dass ein Button über 1MB Arbeitsspeicher belegt. Nebenbei scheint durch das Speicherproblem die gesamte Ausführung aus dem Ruder zu laufen. Wir haben hier einige seltsame Fehler, die wir auch nach stundenlanger Suche nicht am Quelltext, der uns astrein erscheint, erkennen konnten.

Also müssen wir jetzt einen dicken Fehler suchen, oder kann das tatsächlich sein, dass das Applet so hungrig ist, weil Java kacke is? (mal salopp ausgedrückt)
 
Update: wir haben die bisherigen Quellcodes dann auf einen XP-Notebook rübergezogen und da weitergearbeitet. Da funzte es schnell und einwandfrei. Tja, wie stehe ich denn jetzt da? Is ja voll peinlich. :(

Kann man die Java-Engine im OSX noch irgendwie optimieren oder muss ich damit leben, dass die mit großen Objektmengen nicht klar kommt?
 
Auf dem Mac ist Java afaik so ungefähr 12 Mal langsamer als auf dem PC... Das liegt aber glaube ich nicht an Apple...

Und ja, du musst damit leben ;)
 
Die JavaVM ist eine Art Emulation, und die laufen immer langsamer..
 
Wobei, ich könnte mir vorstellen, das die Implementierung über einen awt.Button auch nicht grad die optimalste ist. Ich hätte wohl eher einen JButton, bzw. wahrscheinlich JComponent erweitert.
 
tjo, die java progis die ich einsetze wie zb. tv-browser, limewire oder auch yahoo-chess laufen auf mac und pc gleich schnell...

:-/
 
Mick Dundee schrieb:
Auf dem Mac ist Java afaik so ungefähr 12 Mal langsamer als auf dem PC...

Wie bitte? Woher hast du das denn? Apple macht doch groß Werbung auf der Xcode-Seite, dass man OS X mit objective-C oder Java gleichgut programmieren könne.

@Hugo: Versuch mal, das ganze als native Cocoa-Anwendung laufen zu lassen. Das müsste doch dann schneller sein, oder?
 
Hi
Mick Dundee schrieb:
Auf dem Mac ist Java afaik so ungefähr 12 Mal langsamer als auf dem PC... Das liegt aber glaube ich nicht an Apple...
... an wem denn sonst! Apple ist für die VM verantwortlich, mit ihrem Gewurschtel ins System sind gerade Apple für diese Performace-Probleme verantwortlich. Aber 12x langsamer...ist vielleicht ein wenig übertrieben.
Mick Dundee schrieb:
Und ja, du musst damit leben ;)
... oder vielleicht mal Apple Feuer machen ;)
 
hast du denn auch das letzte java update installiert?
 
java ist generell scheiß langsam...auf pc auch!! verdammt langsame scheiße! ich hasse es!!! scheiß interpreter! wähhhh!!
hab da mal benchmarks gemacht..poste ich demnächst
 
LOL! ja bitte zeig uns mal welche Benchmarks Scheiss so reisst :D
 
H.Stony schrieb:
java ist generell scheiß langsam...auf pc auch!! verdammt langsame scheiße! ich hasse es!!! scheiß interpreter! wähhhh!!
hab da mal benchmarks gemacht..poste ich demnächst

naja, selbst wenns ausm pc auch langsam sein soll, aufm mac ist es, zumindest für mich, fast untragbar langsam. es nervt einfach extrem wenn eclipse ne minute oder so zum starten braucht und immer träge reagiert
 
Zurück
Oben Unten