# Programmlaufzeit



## Solna (21. Okt 2008)

Hallo alle zusammen!

Wieder brauche ich ganz dringend uere Hilfe.

Es ist so, dass ich ein Programm in Java geschrieben habe, die auf die
Daten in der Dantenbank (MySQL) zugreift, die Berechnung ausführt und
wieder einbisschen zurückschreibt.
Nur ich habe mehr als 200000 Artikeln, und deswegen wird die Berechnung
nach meine Schätzungen (mit wenigen Artikeln) ung. 5 Tage dauern.
Sagen wir derzeit habe ich 2 sek Berechnungszeit pro Artikel....

Aber, wenn ich das Programm auf einem Anderen Rechner teste, dann dauert es
ung. 1 sek. pro 40 !!!! Artikel.

Die Rechnerparameter sind gleich (Der erste hat sogar mehr RAM und Hz).

Nur liegt der Unterschied in BS. Der erste (langsamer) hat WinXP und der zweite - Vista.


Die Frage: Kann es daran liegen, dass BS unterschiedlich sind?
Wenn nicht, woran kann es noch liegen? 
Vielleicht weißt jemand par Tipps, wie ich mein Programm schneller ausfüren lassen kann?

Vielen Dank,
Solna


----------



## HoaX (21. Okt 2008)

kann an allem möglichen liegen, kann man pauschal nicht sagen. einfach ausprobieren. wobei mir der geschwindigkeitsunterschied wirklich extrem vorkommt. kannst ja auch mal nen profiler auf beiden rechnern mitlaufen lassen. dann siehst du evtl an welcher stelle es länger dauert und kannst rückschlüsse ziehen


----------



## Solna (21. Okt 2008)

Was ist en Profiler? :bahnhof: 

Wird es sich lohnen, wenn ich auf den zweiten Rechner auch Vista installieren lasse?
Kann das nur an BS liegen? Ist Vista dann besser?


----------



## Sergeant_Pepper (21. Okt 2008)

Hallo Solna,

wo liegt die Datenbank? Existiert sie sowohl auf dem XP-Rechner als auch - als Duplikat - auf dem Vista-Rechner? Oder liegt die Datenbank auf einem dritten PC?

Wenn die Datenbank doppelt existiert: sind die Tabellen in beiden Fällen mit den gleichen Indizes ausgestattet?

Wenn die DB auf einem dritten PC liegt (also über ein Netzwerk angeschlossen ist): ist die Netzverbindung gleichartig?


----------



## Solna (21. Okt 2008)

Hallo,

Freue mich dich zu 'sehen'!

So zu sagen jeder Rechner hat seiner DB. Ich habe einfach auf dem zweiten Rechner alles
nachgebildet. MySQL installiert und die Tabellen von 1 Rechner übertragen.

Mann greift über Localhost auf die Datenbank... Könnte da was sein? ???:L

Und Danke


----------



## maki (21. Okt 2008)

Hatte unter Vista viel langsamere Zugriffszeiten als unter XP mit einer lokalen MySQL Server instanz.

Mit "viel langsamer" meine ich unter XP < 120 Sekunden für die DaoTests und unter Vista > 45 Minuten.

In den logs hatte so ausgehsehen als ob jeder Zugriff auf die DB unter Vista sehr lange dauerte.

k.A. ob da die Firewall oder ähnliches das Problem war, unter Ubuntu läufts jedenfalls am schnellsten


----------



## Sergeant_Pepper (21. Okt 2008)

Solna hat gesagt.:
			
		

> MySQL installiert und die Tabellen von 1 Rechner übertragen.


Ich arbeite viel mit Oracle und habe keine praktische Erfahrung mit MySQL. Bist du sicher, dass alle Indizes auch in der Kopie existieren?



			
				Solna hat gesagt.:
			
		

> Mann greift über Localhost auf die Datenbank... Könnte da was sein?


Ich erinnere mich ganz dunkel, dass es beim Verbindungsaufbau zu MySQL zwei verschiedene Formen gibt: eine über ein Netzwerk (evtl. mit "localhost" als Zielrechner, wenn die DB lokal existiert) und eine, bei der die Datenbank lokal liegen muss. Probier doch mal beides aus.


----------



## tuxedo (21. Okt 2008)

Da hilft alles rätseln nix. Profiler anwerfen und schauen wo's hakt.

Profiler gibts ja genug. Eclipse bringt einen kostenlos mit, dann gibts noch so kommerzielle wie der von www.yourkit.com. Google hilft da weiter.


- Alex


----------



## HoaX (21. Okt 2008)

sogar java selbst liefert einen mit: hprof


----------



## Solna (22. Okt 2008)

Vielen Dank, probiere ich aus..


----------

