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

Valid HTML 4.01 Transitional