| 

.NET C# Java Javascript Exception

3
Hallo zusammen,
habe ein Programm mit Java geschrieben. 2 Threads machen darin ziemlich genau jeweils 50% der Arbeit. Dass heißt bei einem Dual Core Rechner würde ich erwarten, dass beide Prozessoren zwischenzeitlich zu 100% ausgelastet sind. Ist aber nicht so. Entweder ist einer zu 100% ausgelastet und der andere garnicht, oder beide 50%. Insgesamt nutz ich also immer genau 50% der Gesamt-CPU-Leistung. Da es mir darum geht, die arbeit schnellstmöglich abzuarbeiten möchte ich aber möglichst 100% Auslastung.

Hat jemand ne Idee, wo das Problem ist. Scheint so, als ob Java da irgendwie limitiert.

Viele Grüße
Solid01.
News:
20.10.2009
Solid01 61 2
1
Kann beiden hier nur zustimmen. Es wäre nur möglich eine korrekte Antwort zu geben, wenn wir einen Beispielcode hätten, da es ja viele Möglichkeiten gibt Threads aufzurufen und zu parameteresieren.
Dustin Klein 21.10.2009
2 Antworten
2
20.10.2009
gfoidl 9,4k 3 5
2
Die Frage wird dort aber nicht beantwortet!
Arade 20.10.2009
3
Wie sollte denn eine Antwort auf so eine Frage ausschauen? Ohne Code kann das Problem nicht ansatzweise eruiert werden. Sollte es an Java liegen (was ich nicht vermute, denn das ist Aufgabe des OS) wäre dies im anderen Thema erwähnt worden.
gfoidl 20.10.2009
2
Und vielleicht liegt es ja auch gar nicht an den Threads. Es könnte ja durch aus auch sein dass das IO System nicht mit den Daten hinterher kommt.

Ich hatte auch schon solche Sachen (.NET). Mehrer Threads, aber die CPUs fast nicht ausgelastet. Bis ich merkte das die Festplatten zu langsam waren oder das Netzwerk oder der SQL Server ... Je nach Aufgabenstellung muss man den Fehler wo anders suchen. Aber ohne Code?!
21.10.2009
GENiALi 2,5k 1 2 8
1
Kann ich bestätigen. Multi-Threading mit teilweise schelchter Hardware kann sogar zu schlechterer Performance gegenüber "einem Thread" führen.
Blauesocke 21.10.2009
1
@Blauesocke: Das hat mit schlechter Hardware nichts zu tun. Cache und RAM werden wohl immer schneller sein als HD und Netzwerk ;)
gfoidl 21.10.2009
1
In meinem Falle war Zugriff auf 40-60mb große Logfiles mit mehreren Threads langsamer als nur ein gleichzeitiger Zugriff auf ein Logfile. Bei Kollegen mit deutlich besserer Hardware (auch besserer Festplatte), war der Effekt genau andersrum, hier konnte man mit dem parallelen Zugriff massiven Performancegewinn feststellen.
Blauesocke 21.10.2009

Stelle deine Java-Frage jetzt!