# Java & Performance



## EinGast (7. Jun 2004)

Java wird ja allgemein nachgesagt, dass es arschlahm ist. langsam will ich ja gar nicht sagen, aber speicherfressend. wenn ich ein paar Java-Anwendungen offen hab, merkt man schin, dass das halbe Gig knapp werden kann...

Das ist die Sicht, die ich als Anwender habe. Als Entwickler stellt sich mir dann die Frage, wie man denn richtig programmiert, dass solche Symptome vermieden werden?!


Kann mir jemand ne Seite im Netzoder ein Buch empfehlen, wo die DOs & DON'Ts anschaulich dargestellt werden?!
Oder habt ihr vielleicht seler ein paar Positiv- bzw. Negativ-Beispiele auf Lager?!

Ich dank euch jetzt schon wie verrückt...


----------



## Grizzly (7. Jun 2004)

Ich bin gerade an der Entwicklung einer Java Anwendung beteiligt. Und ich muss sagen, dass Java eigentlich recht flott ist - außer man programmiert "unperformant".

Was die Sache mit dem Speicher angeht: Wenn man in den Windows Task Manager schaut, bekommt man es wirklich mit der Angst zu tun, achtet man auf den Speicherverbrauch. Allerdings bin ich der Meinung, herausbekommen zu haben, dass Java sich soviel Speicher holt, wie es für sinnvoll hält, auch wenn es mit weniger auskommen würde. Aber ganz genau weis ich es leider auch nicht... ???:L


----------



## P3AC3MAK3R (7. Jun 2004)

Vielleicht ist folgendes Buch etwas für Dich:

http://www.amazon.de/exec/obidos/AS...r=2-1/ref=sr_aps_prod_1_1/028-2828046-7124504

Ich habe das Buch auch und schon einige gute Tips daraus entnommen (ich habs noch nicht komplett gelesen).


----------



## Grizzly (7. Jun 2004)

P3AC3MAK3R hat gesagt.:
			
		

> Vielleicht ist folgendes Buch etwas für Dich:
> 
> http://www.amazon.de/exec/obidos/AS...r=2-1/ref=sr_aps_prod_1_1/028-2828046-7124504
> 
> Ich habe das Buch auch und schon einige gute Tips daraus entnommen (ich habs noch nicht komplett gelesen).



Ja, das Buch habe ich auch. Und ich habe es sogar komplett gelesen :bae:  .

Das Buch ist wirklich nicht schlecht. Da steht u.a. auch drin, wie man Memory-Leaks verhindert (ja, so etwas gibt es leider auch in Java). Vor allem steht drin, was man nicht machen soll, wo man allerdings bisher nicht im entferntesten dran gedacht hat (bis dahin wusste ich nicht einmal, dass es sowas wie finalizer gibt   ).


----------



## EinGast (7. Jun 2004)

schlechte Übersetzung?!

wie kann man das verstehen?! so geschichten wie gewidmetes Gedächtnis anstelle von Shared Memory oder allgemein ein scheiß satzbau oder beides?!





> Vor allem steht drin, was man nicht machen soll, wo man allerdings bisher nicht im entferntesten dran gedacht hat (bis dahin wusste ich nicht einmal, dass es sowas wie finalizer gibt   ).



wie kann ich das verstehen?! klingt für mich danach, das man, wenn man in java intuitiv einfach losprogrammiert, nichts falsch machen kann. Oder sind da auch dinge drinne, die wirklich von bedeutung sind?!

mein bisheriger stand, was java-kentnisse angeht sieht so aus, dass ich mittlwerweile so ziemlich von allem mal was gesehen habe. bevor ich jetzt loslege und komplexere anwendungen schreibe, möchte ich mir natürlich keinen schlechten Stil angewöhnen. deswegen auch die Frage, wie man in Java programmiert, dass die programme am ende vernünftig laufen...


----------



## Grizzly (7. Jun 2004)

EinGast hat gesagt.:
			
		

> schlechte Übersetzung?!
> 
> wie kann man das verstehen?! so geschichten wie gewidmetes Gedächtnis anstelle von Shared Memory oder allgemein ein scheiß satzbau oder beides?!
> 
> ...



Wie meinst Du das jetzt? Auf was beziehst Du Dich? :bahnhof:



			
				EinGast hat gesagt.:
			
		

> [...]wie kann ich das verstehen?! klingt für mich danach, das man, wenn man in java intuitiv einfach losprogrammiert, nichts falsch machen kann. Oder sind da auch dinge drinne, die wirklich von bedeutung sind?![...]



In dem Buch sind einige Dinge drin, die von Bedeutung sind. Einige können dazu führen - wenn man sie nicht beachtet - das sich zum Resourcen- und Perfomance-Fresser entwickeln. Andere Dinge führen zu Fehlern. Aber das Buch geht auch allgemein auf den Stil ein, den man beim Programmieren mit Java einhalten sollte.



			
				EinGast hat gesagt.:
			
		

> [...]mein bisheriger stand, was java-kentnisse angeht sieht so aus, dass ich mittlwerweile so ziemlich von allem mal was gesehen habe. bevor ich jetzt loslege und komplexere anwendungen schreibe, möchte ich mir natürlich keinen schlechten Stil angewöhnen. deswegen auch die Frage, wie man in Java programmiert, dass die programme am ende vernünftig laufen...



Zusätzlich zu dem Buch empfehle ich Dir auch zu recherchieren, ob es für Deine Entwicklungsumgebung nicht entsprechende PlugIns gibt, die Dich beim programmieren unterstützen.
So gibt es bspw. für Eclipse ein PlugIn JLint, dass Deinen Code nach potentiellen Fehlerquellen absucht und anzeigt. Weiter gibt es für Eclipse eine PlugIn Checkstyle, dass den Stil Deines Quellcodes überprüft und Dich so zur Einhaltung gewisser Konventionen anhält.


----------



## EinGast (7. Jun 2004)

mh, ich schau mir grad die Leseprobe bei addison wesley an...

so wirklich toll find ich die sprache nicht :-(


----------



## EinGast (7. Jun 2004)

ups, jetzt hat sichs Posting überschnitten

bei amazon stand, das die übersetzung wohl nicht so gelungen sei. die leseprobe hats mir bestätigt. aber vom inhalt her gefällt mir das schon...

Ja, ich verwende Eclipse, wenn auch in ner alten Version. so langsam werden das irgendwie immer mehr PlugIns und ich hab schon richtig gehend Angst eins zu "verlieren", wenn ich auf ne neue version geh  :? 

ich denk mal, ich werd mir das buch besorgen und dann schau ich mal weiter...


----------



## nollario (7. Jun 2004)

hab noch ein gutes Buch zu dem Thema - wirklich gut/ leider etwas komplex:

http://www.amazon.de/exec/obidos/AS...r=2-1/ref=sr_aps_prod_1_1/302-0376276-4263204

gilt auch als DAS werk in sachen performance tuning java...


----------



## EinGast (7. Jun 2004)

hey danke!

auch wenn 600 seiten erstmal ziemlich viel sind...
naja, besser einmal zeit für 600 seiten investieren, als jeden tag 5 minuten länger auf den rechner warten


----------

