Java Benchmark

LuxxFred

Neuling
Thread Starter
Mitglied seit
08.02.2007
Beiträge
124
Hat jemand von Euch mehr als zwei Kerne und könnte mal kurz meinen aktuellen Java Benchmark testen?

mt.jar (4,5 KB)

Starten auf der Konsole mit
PHP:
java -jar mt.jar

Ich hab das Programm heute von zwei Kernen auf beliebig viele Kerne umgestellt, kann auf meinem Core2Duo aber natürlich nicht testen, ob das echt mehr Performance bringt. Danke schonmal!

Ach so, es sollten natürlich keine hungrigen Prozesse im Hintergrund laufen, sonst wird das Messergebnis verfälscht.

Mein Ergebnis:
PHP:
 1 thread : 1223 ms
 2 threads: 656 ms
 4 threads: 669 ms
 8 threads: 667 ms
16 threads: 680 ms
32 threads: 688 ms
64 threads: 704 ms

 1 thread : 1211 ms
 2 threads: 691 ms
 4 threads: 703 ms
 8 threads: 704 ms
16 threads: 654 ms
32 threads: 687 ms
64 threads: 707 ms

 1 thread : 1227 ms
 2 threads: 902 ms
 4 threads: 716 ms
 8 threads: 718 ms
16 threads: 697 ms
32 threads: 715 ms
64 threads: 690 ms

 1 thread : 1228 ms
 2 threads: 746 ms
 4 threads: 773 ms
 8 threads: 663 ms
16 threads: 653 ms
32 threads: 695 ms
64 threads: 691 ms

 1 thread : 1227 ms
 2 threads: 670 ms
 4 threads: 717 ms
 8 threads: 741 ms
16 threads: 699 ms
32 threads: 677 ms
64 threads: 687 ms
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Amd x2 3800+@2500Mhz

Code:
C:\Program Files (x86)\Java\jre1.6.0_05\bin>java -jar mt.jar
 1 thread : 874 ms
 2 threads: 511 ms
 4 threads: 545 ms
 8 threads: 482 ms
16 threads: 477 ms
32 threads: 491 ms
64 threads: 512 ms

 1 thread : 868 ms
 2 threads: 465 ms
 4 threads: 491 ms
 8 threads: 466 ms
16 threads: 487 ms
32 threads: 494 ms
64 threads: 487 ms

 1 thread : 870 ms
 2 threads: 598 ms
 4 threads: 487 ms
 8 threads: 505 ms
16 threads: 503 ms
32 threads: 471 ms
64 threads: 482 ms

 1 thread : 868 ms
 2 threads: 484 ms
 4 threads: 494 ms
 8 threads: 518 ms
16 threads: 496 ms
32 threads: 512 ms
64 threads: 491 ms

 1 thread : 871 ms
 2 threads: 575 ms
 4 threads: 504 ms
 8 threads: 491 ms
16 threads: 509 ms
32 threads: 484 ms
64 threads: 499 ms
 
wäre interessant zu erfahren was einem die Zeiten sagen sollen?
wenn es Zeiten welche für irgend eine Berechnung benötigt worden sind, sehr unwarscheinlich das er genauso lange benötigt wenn er 64 Threads stat 2 Threads hat.
Ich schreibe ja derzeit selber einen Benchmark und weiss dadurch das sich die Rechenzeiten extrem erhöhen wenn mit mehr Threads gearbeitet wird als kerne vorhanden sind.(zumindest wenn diese Threads alle auf 100% Auslastung der CPU abziehlen).
 
wäre interessant zu erfahren was einem die Zeiten sagen sollen?
Paralleles Quicksort von 5 Millionen Ganzzahlen. Mein Lieblings-Benchmark-Algorithmus :d

Da die einzelnen Threads nicht exakt gleich viel zu tun haben, ist Anzahl Threads = Anzahl Kerne noch nicht optimal. Die anfallende Arbeit verteilt sich mit mehr Threads einfach noch besser auf die existierenden Kerne, da die Threads zu unterschiedlichen Zeiten fertig werden. Wenn Du nur zwei Threads hast, verschwendest Du die Rechenleistung eines Kerns über die Zeitspanne, die zwischen dem Beenden des ersten und des zweiten Threads liegt.

Ich schreibe ja derzeit selber einen Benchmark und weiss dadurch das sich die Rechenzeiten extrem erhöhen wenn mit mehr Threads gearbeitet wird als kerne vorhanden sind.
Was für einen Algorithmus setzt Du denn um? Paralleles Quicksort benötigt keinerlei Synchronisierung, von daher beißen sich die Threads nicht großartig.
 
Ich würd gerne helfen, aber bei mir schließt sich immer das Fenster sobald er den vierten Durchlauf gemacht hat o_O

Naja aber die ersten drei Durchläufe kann ich ja trotzdem posten

thread1 615 ms
thread2 421 ms
thread4 289 ms
thread8 295 ms
thread16 248 ms
thread32 244 ms
thread64 203 ms

thread1 627 ms
thread2 362 ms
thread4 282 ms
thread8 246 ms
thread16 211 ms
thread32 230 ms
thread64 246 ms

thread1 623 ms
thread2 341 ms
thread4 229 ms
thread8 289 ms
thread16 230 ms
thread32 257 ms
thread64 226 ms
 
Ich würd gerne helfen, aber bei mir schließt sich immer das Fenster sobald er den vierten Durchlauf gemacht hat o_O

Naja aber die ersten drei Durchläufe kann ich ja trotzdem posten
Starte das Prog von der Eingabeaufforderung aus...


1 thread : 708 ms
2 threads: 374 ms
4 threads: 347 ms
8 threads: 283 ms
16 threads: 297 ms
32 threads: 244 ms
64 threads: 245 ms

1 thread : 694 ms
2 threads: 488 ms
4 threads: 304 ms
8 threads: 275 ms
16 threads: 283 ms
32 threads: 256 ms
64 threads: 249 ms

1 thread : 691 ms
2 threads: 358 ms
4 threads: 302 ms
8 threads: 305 ms
16 threads: 272 ms
32 threads: 249 ms
64 threads: 260 ms

1 thread : 689 ms
2 threads: 432 ms
4 threads: 341 ms
8 threads: 278 ms
16 threads: 253 ms
32 threads: 241 ms
64 threads: 237 ms

1 thread : 693 ms
2 threads: 389 ms
4 threads: 347 ms
8 threads: 286 ms
16 threads: 244 ms
32 threads: 220 ms
64 threads: 237 ms
 
Was für einen Algorithmus setzt Du denn um? Paralleles Quicksort benötigt keinerlei Synchronisierung, von daher beißen sich die Threads nicht großartig.

Also meine Threads haben gar keine Synchronisierung.
Trotzdem sollten sich deine Threads aus dem Grund beeinflussen das sie sich gegenseitig Rechenzeit wegnehmen.
 
Trotzdem sollten sich deine Threads aus dem Grund beeinflussen das sie sich gegenseitig Rechenzeit wegnehmen.
Aber dafür hat ja jeder einzelne Thread auch weniger zu rechnen.

Neue Version mit übersichtlicherem Output ist verfügbar.

Code:
 1 thread : 6048 ms   (1,00x)
 2 threads: 4157 ms   (1,46x)
 4 threads: 3403 ms   (1,78x)
 8 threads: 3390 ms   (1,78x)
16 threads: 3346 ms   (1,81x)
32 threads: 3470 ms   (1,74x)
64 threads: 3428 ms   (1,76x)
 
wie kommts, das 16 threads bei dir schneller sind als 32 oder 64?

edit: wenn ich cmd beim Ausführen eintippe und dann in dem fenster cd c:\ eingebe und dann den befehl C:\Programme etc... dann sagt er mir "unable to acces jarfile mt2.jar" ^^
 
Zuletzt bearbeitet:
wie kommts, das 16 threads bei dir schneller sind als 32 oder 64?
Das sind ja nur minimale Unterschiede, halt Messungenauigkeiten. Hab den Benchmark gerade nochmal durchlaufen lassen, jetzt ist 16 langsamer als 32:
Code:
 1 thread : 6095 ms   (1,00x)
 2 threads: 3716 ms   (1,64x)
 4 threads: 3448 ms   (1,77x)
 8 threads: 3447 ms   (1,77x)
16 threads: 3487 ms   (1,75x)
32 threads: 3452 ms   (1,77x)
64 threads: 3538 ms   (1,72x)
Also im Prinzip ist 4-64 Threads alles gleich schnell.

unable to acces jarfile mt2.jar
Wo hast Du die mt2.jar denn gespeichert? Wenn Du die Datei z.B. ins Hauptverzeichnis der ersten Partition gespeichert hast, dann gibt mal folgenden ein:

Code:
java -jar c:\mt2.jar
 
ah okay danke ^^

ALso der Quad bringt beim Bench schon was.. ist nur anscheinend nicht so effektiv wie die Steigferung bei einem DualCore :

Thread 1 : 3033ms (1,00x)
Thread 2 : 1930ms (1,57x)
Thread 4 : 1431ms (2,12x)
Thread 8 : 1190ms (2,55x)
Thread 16:1158ms (2,62x)
Thread 32:1161ms (2,61x)
Thread 64:1106ms (2,74x)
 
Bei mir arbeitet es, aber es kommt kein Ergebnis. :hmm:

Java_Benchmark_01.jpg


Java sollte eigentlich aktuell drauf sein.
 
Bei mir arbeitet es, aber es kommt kein Ergebnis.
Das ist eine Konsolenanwendung, die Du aus der Konsole starten musst. Wenn Du einfach nur auf das JAR doppelklickst, dann siehst Du die Konsolenausgaben nicht. Geh auf die Konsole und gib ein

Code:
java -jar mt2.jar
 
Hiho,

hier mal ein Resultat von einem Phenom 9850 @ Default:

1 thread : 4581 ms (1,00x)
2 threads: 2824 ms (1,62x)
4 threads: 2055 ms (2,23x)
8 threads: 1699 ms (2,70x)
16 threads: 1547 ms (2,96x)
32 threads: 1538 ms (2,98x)
64 threads: 1554 ms (2,95x)

Das ganze unter einem ziemlich gerümpeligen Ubuntu64 (also keine "Benchmark-Optimierungen").
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_03-b05, mixed mode)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh