2008-08-20T17:00:00+01:00
Applet zum Testen einer gewissen relativen Belastung durch
Java Operationen als Benchmark
{ Inhalte sind randomized }
dieses kleine beispiel zeigt, das man mit java und
der virtuellen maschine (jvm/vm) durchaus einen
performanceanteil der cpu vorher sagen kann
oder die leistung.s.messung bestimmen zu können. durch die umstellung
der architekturen auf mehrkern (dual.core/multi.core)
systeme, wird eine verlagerung und ein neu.design
der software notwendig um den workload zu optimieren.
mit java programmiert man die virtuelle maschine für
aufgabenstellungen mit komplexem anspruch im business.
hier nun ein paar dummy aufgaben für den prozessor
der in einer schleife aufgaben abarbeitet, die teilweise
parallelisiert und im quelltext zu sehen sind.
da der großteil der aufgaben im generieren (secure.random) von zeichen
im zufall generator liegen, wird der zeichensatz
anschließend mit sha1 verschlüsselt,umkopiert und wieder ausgelesen.
ein stress test für die cpu mit einstellbarer schleifenlänge (faktor)
um die anforderung zu variieren und die leistung zu messen .
die tabelle mit den ergebnissen sind richtwerte, die
nach system konfiguration unterschiedlich sind und
kann daher variieren. ein wiederholtes starten kann
die performance verbessern, jedoch wird die systemzeit des
rechners benutzt und das ergebnis kann schwanken.
einzelne thread sowie - multithreading programmierung - wird zwar benutzt
aber wer weiß schon ob es so etwas bringt ?
die entwicklung wird weiter gehen, mal sehen wann wieder zeit ist.
man kann leider auch sehen, das der benchmark in dem jetzigen design
nicht gut skaliert, ich brauche echt landsam ne neue kiste um
multi.thread.programmierung zu lernen.
die verwendete cache.größe bestimmmt massgeblich die
unterschiede unter faktor, die resultierenden ergebnisse
des benchmark sind durch das rechenwerk und die architektur
bestimmt.
als schlussfolgerung kann man sagen, das rechner unter
1000 ops keinen spass machen -.- und auch zum alten
eisen gehören sollten. ich hoffe weiterhin ergebnisse
liefern zu können um das wirrwar der bezeichnungen
ein wenig trennen zu können |o]
die angaben der dualcore prozessoren beziehen sich auf jeweils
eine logische cpu, die angegebenen werten können also doppelt
genommen werden, um die physikalische cpu zu schätzen.
höhere werte, bei geringerem takt, führen sich auf ein
höheren takt des speicherinterfaces oder einen verbesserten
speichercontroller zurück.
die aktuellen klassen wurden nun mit java 1.5 (j2se) kompiliert,
die werte aus der version 1.4.2 sind nun nicht mehr reproduzierbar
und können auf wunsch selbst nachgebaut werden.
es wird deutlich sichtbar, dass die java 1.6 nochmal 50% schneller ist.
durch die hohen ergebnisse der übertaktung ist nun der faktor 8 & 16 eingeführt.
[{( rechner als synonym für computer )}]
Betriebssystem (OS) |
JAVA (VM) |
Takt (GHz) |
System - CPU |
Die Cache lvl2 |
@ faktor (1) |
@ faktor (4) |
@ faktor (8) |
@ faktor (16) |
special |
rendert byte |
|
|
|
|
~0.25 |
~3 |
~10 |
~34 |
mb = megabyte |
|
|
|
|
|
|
|
|
|
|
irix.6.5.24 |
1.4.1_06 |
0.3 |
mips r12000 |
8.MB |
413 |
449 |
|
|
obsolete |
SunOS 5.10 |
1.5_07 |
0.5 |
sun ultra.sparc.iie |
512.kB |
|
500 |
|
|
|
win.98 |
1.5.0_04 |
0.433 |
intel celeron |
128.kB |
650 |
580 |
|
|
|
win.xp |
1.6_07 |
0.45 |
intel pentium III |
256.kB |
|
800 |
|
|
|
win.2k |
1.5_06 |
0.8 |
intel amd.athlon |
256.kB |
|
800 |
|
|
|
mac.os.10.4.x |
1.5_07 |
0.867 |
power.pc.g4.mobile (3.3) |
512.kB |
|
1174 |
|
|
|
win.2k |
1.5_06 |
1.0 |
intel amd.athlon |
256.kB |
1500 |
1200 |
|
|
|
win.xp |
1.5_06 |
1.7 |
intel celeron.mobile |
128.kB |
1500 |
1200 |
|
|
|
win.2k |
1.5_08 |
1.0 |
intel pentium.iii |
256.kB |
1800 |
1200 |
|
|
|
win.xp |
1.5_08 |
1.7 |
intel celeron.mobile |
128.kB |
1800 |
1500 |
|
|
|
mac.os.10.4.8 |
1.5_06 |
1.42 |
power.pc.g4.mobile |
512.kB |
1976 |
2045 |
|
|
|
mac.os.9 |
1.4.2 |
1.5 |
power.pc.g4 |
512.kB |
|
2000 |
|
|
obsolete |
win.xp |
1.5_09 |
1.7 |
intel celeron.mobile |
128.kB |
2100 |
1600 |
|
|
|
win.xp |
1.5_06 |
1.5 |
intel pentium.4.mobile |
512.kB |
|
2100 |
|
|
|
win.2k |
1.4.2_06 |
1.8 |
amd athlon.xp.2200+ |
512.kB |
2600 |
2000 |
|
|
obsolete |
win.2k |
1.6_01 |
1.8 |
amd athlon.xp.2200+ |
512.kB |
3500 |
2600 |
|
|
|
|
win.xp |
1.5_06 |
1.6 |
amd turion.x2 | tl-50 |
2 x 512.kB |
3075 |
2934 |
|
|
|
win.2k |
1.5_06 |
2.8 |
intel pentium.4 (ht) |
1.MB |
3200 |
3200 |
|
|
|
win.2k |
1.5_06 |
2.6 |
intel celeron.D |
128.kB |
3200 |
2600 |
|
|
|
win.xp |
1.5_06 |
1.1 |
intel centrino | 933ULV |
2.MB |
3300 |
2600 |
|
|
|
win.2k |
1.6_02 |
1.8 |
amd athlon.xp.2200+ |
512.kB |
3900 |
3150 |
|
|
|
win.2k |
1.5_06 |
2.4 |
amd athlon.xp.3000+ |
512.kB |
3600 |
3200 |
|
|
|
win.xp |
1.5_06 |
2.333 |
amd athlon.xp.3200+ |
512.kB |
|
3950 |
|
|
|
win.xp |
1.6_01 |
2.333 |
amd athlon.xp.2800+ |
512.kB |
4400 |
3800 |
|
|
|
win.xp |
1.5_06 |
1.5 |
intel pentium.m | 735 |
1.MB |
4500 |
4000 |
|
|
|
win.xp |
1.5_06 |
2.2 |
amd athlon.64.x2.4200+ |
2x512.kB |
4500 |
4000 |
|
|
|
win.xp |
1.5_11 |
1.6 |
intel pentium.m | 730 |
1.MB |
4600 |
4100 |
|
|
|
win.xp |
1.6_u1 |
2.22 |
amd sempron.64.3300+ |
256.kB |
5400 |
4500 |
|
|
overclocked.air.cooled |
win.xp |
1.5_06 |
1.66 |
intel core.duo.T.2300 |
2 x 1.MB |
|
5200 |
|
|
|
mac.os.x |
1.5_06 |
2.0 |
intel core.duo.T.2500 |
2 x 1.MB |
5500 |
4200 |
|
|
|
win.xp |
1.5_08 |
2.36 |
amd athlon.64.3000+ |
512.kB |
|
5400 |
|
|
overclocked.air.cooled |
suse.10.1 |
1.5_07 |
2.4 |
intel core.2.duo E.6600 |
2 x 2.MB |
|
5350 |
|
|
|
linux 2.6.17.13-kanotix-2 |
1.5_09 |
1.86 |
intel core.2.duo xeon.5320 |
2 x 4.MB |
6300 |
4500 |
|
|
|
win.xp |
1.6_03 |
3.0 |
intel pentium.4.ht |
1 x 512.kB |
5200 |
4700 |
3300 |
1700 |
|
mac.os.x |
1.5_06 |
2.66 |
intel core.2.duo xeon.5150 |
2 x 1.MB |
7700 |
6300 |
|
|
|
win.xp |
1.6_03 |
2.4 |
amd athlon.64.x2.4600+ |
2 x 512.kB |
8800 |
7100 |
5100 |
2700 |
|
win.xp |
1.5_09 |
2.178 |
intel core.2.duo T.7200 |
2 x 2.MB |
8400 |
7350 |
|
|
overclocked.air.cooled |
win.xp |
1.6 |
1.83 |
intel core.2.duo T.5600 |
2 x 1.MB |
8860 |
7750 |
|
|
|
win.xp |
1.6_04 |
2.57 |
amd athlon.x2.BE.2350 |
2 x 512.kB |
9500 |
8100 |
5900 |
3500 |
overclocked.air.cooled |
mac.os.10.4.7 |
1.5_07 |
2.16 |
intel core.2.duo T.7400 |
2 x 2.MB |
9500 |
8200 |
|
|
|
win.xp |
1.6_07 |
1.87 |
intel core.2.duo E.2140 |
1.MB |
|
8500 |
|
|
|
win.xp |
1.5_09 |
2.80 |
intel core.2.duo E.6400 |
2 x 1.MB |
|
9500 |
|
|
overclocked.air.cooled |
win.xp |
1.5_09 |
2.88 |
intel core.2.duo E.6400 |
2 x 1.MB |
11000 |
9500 |
|
|
overclocked.water.cooled |
win.xp |
1.6_03 |
2.4 |
intel core.2.duo E.6600 |
2 x 2.MB |
12500 |
10500 |
8500 |
5000 |
|
win.xp |
1.6_03 |
2.4 |
intel core.2.quad Q.6600 |
2 x 4.MB |
12500 |
10500 |
8500 |
|
|
win.xp |
1.5_06 |
3.4479 |
intel core.2.duo E.6700 |
2 x 2.MB |
13770 |
11440 |
|
|
overclocked.air.cooled |
win.xp |
1.6_01 |
3.7 |
intel core.2.duo xeon.3060 |
4.MB |
18600 |
13600 |
|
|
overclocked.water.cooled |
win.xp |
1.6_05 |
3.0 |
intel core.2.duo E.8500 |
6.MB |
|
15400 |
|
|
|
win.xp |
1.6_03 |
3.9 |
intel core.2.quad Q.6600 |
2 x 4.MB |
18694 |
16331 |
12644 |
7227 |
overclocked.water.cooled |
| 1MB = 1024kB | 1kB = 1024 Byte |
die testergebnisse für den/der/die/das Java.Performance.Test.Applet.class v.0.43
die verwendete messgrösse / maßzahl (spec/specs) ist synthetisch und von der jeweiligen java vm abhängig
ich suche noch ergebnisse für: solaris | ultra.sparc | niagara | T1 | T2 | opteron | barcelona | phenom | power.pc | xbox | ps3 | exotic.machines
weitere testergebnisse bitte an markus.schulz[at]maniac-capacity[dot]de schicken
Java.Performance.Test.Applet.java (source)
Java.Performance.Test.Applet.txt (quelltext)
try mandelbrot fractal