Java jeździ coraz szybciej

Porównać nieporównywalne

Na pierwszy rzut oka najdogodniejsze porównanie wydajności powstałoby przy umieszczeniu wszystkich wyników na jednym wykresie. Zrezygnowano jednak z tego, ponieważ intencją testu nie było porównywanie właściwości użytego sprzętu. Komputer Sun Ultra Enterprise 2 jest co najmniej o rząd wielkości droższy niż Dell PowerEdge, a IBM RS/6000 ma pamięć o pojemności 12 razy większej. Aby utrzymać wyniki w tych samych granicach, użyto tylko dwóch procesorów w RS/6000. Nie można ignorować faktu, że wyniki uzyskane dla systemu AIX są ok. 10 razy lepsze niż dla Windows NT. Trzeba jednak pamiętać, że dobrze opracowany równomierny rozkład obciążenia na wiele serwerów Windows NT może być równie efektywny co do kosztów. Natomiast nie zadowalają wyniki uzyskane na Sun Solaris, zwłaszcza z uwagi na cenę komputera.

Dobre wyniki otrzymał OS/2. Z wyjątkiem pierwszego punktu (Rys. 2), są one dwa do trzech razy lepsze niż dla Windows NT i co najmniej tyle samo lepsze niż dla Linuksa. Wygląda na to, że IBM udało się znacznie poprawić optymalizację swojego systemu, mimo że użyto jedynie wersji beta kompilatora na bieżąco z IBM JDK dla OS/2. Wyniki ostatecznej wersji mogą odbiegać od podanych wyników. Zmiana parametrów usuwania obiektów i klas z pamięci nieco poprawia wyniki, ale nie na tyle, by warto było z tego powodu restartować komputer z nowymi parametrami maszyny wirtualnej.

Warto przyjrzeć się wynikom Linuksa. Dla bardzo małego obciążenia są one prawie takie same jak dla Windows NT. Wynik jest o tyle zdumiewający, że Linux JDK nie ma kompilatora na bieżąco, a uzyskano go na systemie z jednym procesorem.

Oczekiwano, że na systemie AIX kompilator do kodu maszynowego HPCJ - dzięki optymalizacji - osiągnie znacznie lepsze wyniki, tymczasem były one jedynie nieznacznie lepsze. HPCJ na Windows NT dawał lepsze wyniki tylko dla 30 wątków, potem zaś szybko spadały poniżej innych systemów. Warto jednak pamiętać, że podobnie jak w przypadku OS/2 użyto HPCJ w wersji beta i nie wiadomo, jakie wyniki da się osiągnąć w wersji końcowej.

Niezależnie od aktualnego stanu maszyn wirtualnych i kompilatorów, widać, że producenci dążą do osiągnięcia większej szybkości działania Javy na serwerze.

Testowane produkty

Maszyny wirtualne Java

IBM JDK 1.1.6 dla systemu AIX

IBM JDK 1.1.7 dla systemu OS/2 (beta)

IBM JDK 1.1.6 dla systemu Windows NT (beta)

Microsoft SDK for Java 3.0

Sun Solaris JDK 1.1.6 dla procesora Sparc

Blackdown JDK 1.1.6 v. 2 dla systemu Linux

Kompilatory do kodu maszynowego

IBM High Performance Compiler for Java v. 12 dla systemu AIX

IBM High Performance Compiler for Java v. 12 dla systemu Windows NT

Symantec Visual Cafe Database Development Edition 2.5

Systemy operacyjne i sprzęt

IBM AIX na RS/6000 model F50

IBM OS/2 Warp Server 4.05 na Dell PowerEdge 2200

Microsoft Windows NT Server 4.0 z Service Pack 3 na Dell PowerEdge 2200

Sun Solaris Server 2.6 na Sun Ultra Enterprise 2

Red Hat Linux 5.1 na Dell PowerEdge 2200

Na podstawie materiałów zamieszczonych w tygodniku InfoWorld, wydawanym przez IDG, opr. Marian Łakomy.


TOP 200