Java

18.10.2008 15:50

Úvod

Protože tzv. Java manažerů je celá řada a není mezi nimi úplně jasno, tak jsem se rozhodl vybrané varianty otestovat.

 

Při snaze proniknout do problematiky mi pomohl zejména tento zdroj:

The (Java) MIDlet Bible - Werner "Menneisyys" Ruotsalainen

 

Pro otestování jsem zvolit následující manažery:

 

1) Nejnovější verze od IBM, kterou se mi podařilo sehnat:

IBM J9 MIDP 2.0 Emulator, v2.3 Build 20061109_1110, J9VM 20061023_08962_|EdCmV, weme 6.1.1 for WM5

Tato verze by měla jít teoreticky sehnat přímo od IBM jako Trial. Na internetu se povaluje jako weme-wm50-arm-midp20_6.1.1.20061110-161633.zip

 

2) Esmertec Jeodek/Jbed

Od tohoto rozšířeného manažeru jsem vybral pro srovnání čtyři verze.

a) Esmertec Jeodek 200704251.1

První verze, na kterou jsem při pátrání narazil. Je trochu postarší a poslouží hlavně pro srovnání.

b) Esmertec Jeodek '3D' 20060421-95649

Verze Jeodeku, která podporuje 3D aplikace.

Více zde: Esmertec Jeodek 3D - emulátor Javy pro WM přístroje

c) Esmertec Jbed 2008080222.3.1

Novější, ale ne nejnovější verze. Zvolil jsem ji, protože se mi zdá hodně rozšířená.

d) Esmertec Jbed 20080328.3.1 VolROMGirisFix8mb

Jedna z mnoha uživatelských modifikací.

Vice zde: Java with file system access, full screen mode, 3d, 8mb Heap Size

 

3) TAO intent

S rozchozením tohoto manažeru jsem měl asi nejvíce potíží. Verze 11.1.7.1036 se mi vůbec nerozběhla. Nižší verze 1035 nebo 1023 mi sice běžely, ale nešla mi nainstalovat žádná aplikace. Nakonec se mi rozběhla verze 11.1.7.1034 by dFine, edited by risidoro. Více zde: All the Intent MIDlet Managers 11.x ever released!

Přestože se všude vyloženě píše, že tuto verzi lze instalovat i na kartu, tak právě zde byl problém. Rozběhlo se to, až při instalaci přímo do paměti zařízení (i když bych přísahal, že i to jsem původně zkoušel, ale nejelo to).

 

Další manažery jsem se rozhodl ignorovat jako minoritní.

 

Výkon

JBenchmark 1.1.1

Link: https://www.jbenchmark.com/download.jsp?benchmark=v1

Všechny testované manažery pustily svorně tento test v rozlišení 320x188 (Testoval jsem v landscape režimu), takže je možné přímé srovnání.

Testovací metodika: 3x jsem nechal proběhnout test při novém spuštění manažeru a 3x běžel test v opakovacím cyklu (před testem již benchmark minimálně jednou proběhnul). Výsledky jsem zprůměroval a vyjádřil největší odchylku od průměru v procentech.

 

Test\SW

 IBM J9 6.1.1 

Jeodek

200704251.1

Jeodek 3D

20060421-95649

Jbed

2008080222.3.1

Jbed Modded 20080328.3.1

 TAO Intent

11.1.7.1034

Text 15099 ± 12% 601 ± 3%  597 ± 2%  1403 ± 3%  1405 ± 2%  473 ± 2%

2D shapes

9210 ± 3% 2401 ± 1%  2856 ± 1%  9157 ± 1%  9000 ± 2%  497 ± 1%
3D shapes 3812 ± 4% 1068 ± 1%  1068 ± 1%  3371 ± 3%  3364 ± 3%  459 ± 3% 
Fill rate 1496 ± 1% 493 ± 1%  491 ± 1%  1174 ± 2%  1179 ± 1%  418 ± 1% 
Animation  6939 ± 1% 1571 ± 1%  1562 ± 1%  5941 ± 1%  5913 ± 1%  495 ± 3% 
TOTAL  36556±6%  6133±1% 6577±1% 21045±1% 20861±2% 2342±1% 

 

Z grafu je vidět, že TAO Intent se rozhodně nehodí nasazovat tam, kde potřebujeme vysoký výkon. Jbed několikanásobně překonává Jeodek. Velký náskok IMB J9 je dán skvělým výsledkem v subtestu "Text". V ostatních subtestech už J9 neporáží Jbed o tolik, nicméně vítězí vždy.

 

JBenchmark3D 3.1.0

Link: https://www.jbenchmark.com/download.jsp?benchmark=3d

Starší Jeodek 20070425.1.1 nepodporuje 3D aplikace. Kvůli jeho slabému výkonu v 2D části jsem se rozhodl ho z dalších testů úplně vyřadit.

3D aplikace bohužel nejsou podporovány ani v IBM J9.

JBenchmark3D běžel v různých manažerech v různém rozlišení: 

Jeodek '3D' 20060421-95649 320 x 214 (Horní lišta zůstává)
Jbed 2008080222.3.1 320 x 240 (Fullscreen)
Jbed 20080328.3.1 Mod 320 x 240 (Fullscreen)
TAO Intent 11.1.7.1034 320 x 188 (Obě lišty)

Nejsem si jistý, jak přesně JBenchmark3D počítá výsledky, ale obávám se, že kvůli různému rozlišení nepůjde manažery přímo srovnávat.

Testovací metodiku jsem nechal jako u JBenchmarku 1.1.1, procentně vyjádřenou odchylku tentokrát uvádět nebudu, protože nebyla tolik významná.

 

  Jeodek 3D Jbed Mod Jbed TAO Intent
HQ

296

272 269 115
LQ 323 292 293 268
Triangles/s 33635 44235 44292 28919
KTexels/s 3467 3131 3113 3073

Z grafu je vidět, že v 3D vede starý Jeodek. I když to může být způsobeno tím, že neběží ve fullscreenu, tak je vidět, že 3D tomuto manažeru sedí mnohem lépe než 2D test ve kterém propadl. Obě verze testované verze podaly stejný výkon. Poslední se opět umístil TAO Intent. V LQ testu ale tento manažer nezaostal nijak dramaticky.

 

JBenchmark3D spolu s výsledky zobrazuje další zajímavé informace:

  Jeodek 3D Jbed Mod Jbed TAO Intent
M3G Version 1.0 1.1 1.1 1.0
Antialising NE NE NE NE
True color NE NE NE NE
Dithering NE NE NE ANO
Midmapping NE NE NE NE
Perspective Correction ANO ANO ANO ANO
Local Camera ANO ANO ANO NE
Max Lights 256 256 256 8
Max Viewport Dimension 1024 1024 1024 2048
Max Texture Dimension 1024 1024 1024 512
Max Sprite Crop Dimension 1024 1024 1024 512
Max Transforms per Vertex 2 2 2 4
Number of Texture Units 2 2 2 2
Transparency 256 256 256 256
Double Buffer ANO ANO ANO ANO
Total Memory Available 1 901  100 8 388 544 4 194 240 134 217 728

Je vidět, že Jeodek a Jbed jsou postaveny na podobném základu. Jediným rozdílem je novější verze M3G u Jbed a velikost paměti, která je k dispozici. Dle očekávání je mod Jbed opravdu přidává další 4MB. Hodnota udaná u TAO intent je zarážející a patrně není využití paměti prakticky neomezeno. Je vidět, že TAO Intent je postaven trochu jinak, takže i když není nejrychlejší, tak bychom ho neměli hned zatracovat.

 

 JBenchmarkHD 4.0.3

Link: https://www.jbenchmark.com/download.jsp?benchmark=hd

Rozhodl jsem se, že z dalších testů vynechám Jbed 2008080222.3.1. Vypadá to, že má prakticky stejné vlastnosti jako 20080328.3.1. Modifikace novější verze možnosti rozšiřuje a zdá se, že to není na úkor žádných jiných vlastností.

Tentokrát jsem test nechal proběhnout jen jednou, protože jsem už nepotřeboval vyšší přesnost testu.

V následující tabulce jsou skoro všechny výsledky udané benchmarkem. Vynechal jsem jen údaje, které byly již otestovány programem JBenchmark3D. Všechny manažery použily stejné rozlišení jako v přecházejícím testu Jbenchmark3D. IBM J9 opět odmítl test spustit.

 

  Jeodek 3D Jbed Mod TAO intent
Rendering Quality      
Bilinear Filtering Failure (66%) Failure (65%) Success (99%)
Trilinear Filtering NE NE NE

Sub-pixel precise

perspective corection

Failure (64%) Failure (64%) Success (96%)
Z-buffer depth Success (16bit or >) Success (16bit or >) Success (16bit or >)
Performance      
Smooth triangles 96877 91944 66429
Textured triangles 71019 67358 43077
Fill rate (kTexels) 1219 1202

875

Gaming (fps) 6,6 6,3 3,0
Other      
M3G (JSR 184)  1.0 1.1  1.0 
CLDC (JSR 30,139)  1.1 2.0  1.1 
MIDP (JSR 37, 118, 271)  2.0 2.0 2.0
FC (JSR 75)  NE 1.0 1.0 
PIM (JSR 75)  NE 1.0  1.0
Bluetooth (JSR 82)  NE  NE  NE
WMA (JSR 120, 205)  1.1  1.1  1.1
Smsc   NE   NE   NE
MMAPI (JSR 135)  1.1  1.1  1.1
Snapshot Encodings   NE  NE  png jpeg
Video capture  NE  NE  NE
Video encodings  NE  NE  NE
Streamable content  NE  NE  NE
Mixing  NE  ANO  ANO
Recording  NE  NE  ANO
Audio encodings  NE  NE  pcm
Audio capture  NE  NE  ANO
Web Parser (JSR 172)  NE  NE  NE
Web Rpc (JSR 172)  NE  NE  NE
SATSA (JSR 177)  NE  1.0  NE
Location (JSR 179)   NE  NE  NE
SIP (JSR 180)  NE  NE  NE
JTWI (JSR 185)  1.0  1.0  1.0
CHAPI (JSR 211)  NE  NE  NE
SVG (JSR 226)  NE  NE  NE
AMMS (JSR 234)  NE  NE  NE
GLOBAL (JSR 234)  NE  NE  NE

Tato tabulka potvrzuje, že Jeodek 3D je nejrychlejší, ale také nejméně pokročilý. Jbed splňuje pozici favorita, dobrý výkon je spojen s pokročilejšími technologiemi. TAO Intent dokazuje, že je i přes nízký výkon zajímavou alternativou.

Při testu se ukázala ještě jedna věc, kterou tabulka nezobrazuje. TAO intent byl zoufale pomalý při přípravě performance testů, kdežto u Jeodeku/Jbedu se pouštěly testy takřka okamžitě. Špatný dojem z výkonu TAO Intent ale opravila bezkonkurenční kvalita.

 

 JBenchmark 2.1.1

Link: https://www.jbenchmark.com/download.jsp?benchmark=v2

Protože nám z předchozích testů vypadla J9 od IBM, kvůli neschopnosti zobrazovat 3D, tak jsem se rozhodl otestovat výkon ještě jednou v 2D režimu. I když 3D vypadá hezky, tak většina java aplikací pro mobily je 2D. Tentokráte jsem použil JBenchmark verze 2. Metodiku jsem použil stejnou jako u JBenchmarku v1.

 

  Jeodek 3D Jbed Mod IBM J9 TAO Intend
Image manipulation 283 ± 1% 505 ± 3% 234 ± 3% 302 ± 13%
Text 531 ± 1% 1681 ± 1% 492 ± 8% 416 ± 1%
Sprites 316 ± 1% 468 ± 1% 378 ± 2% 368 ± 1%
3D transform 429 ± 1% 916 ± 1% 458 ± 1% 432 ± 1%
User interface 435 ± 1% 62 ± 2% 123706 ± 9% 1679 ± 39%

Legenda:

První, Druhý

Třetí, Čtvrtý

       

 

Z tabulky jsem záměrně vynechal údaj TOTAL, protože se mi zdálo, že pro skutečné porovnání není toto číslo relevantní. Celkově je z výsledků vidět, že zvítězil Jbed. Naopak Jeodek dopadl v podstatě nejhůře (krom manipulace s textem). Výsledky J9 a TAO jsou obtížněji interpretovatelné. Obrovský výkon IBM J9 v kategorii User interface zavání ďábelskou optimalizací nebo zcestnými výsledky. Pokud je test dobře navržen, tak J9 kraluje a Jbed se plouží. U TAO intendu je zase zajímavý rozptyl výsledků. U 'user interface' to způsobila jedna ustřelená hodnota (2329) a u 'image manipulation' to byl rozdíl mezi opakovaným a čerstvým testem. Překvapivě dopadly všechny opakované testy hůře nežli první běhy. To je v protikladu ke všem ostatním výsledkům předchozích benchmarků. Nevím čím si to vysvětlit.

 

Každopádně je zajímavé, že náskok J9 v JBenchmarku v1 v JBenchmarku v2 úplně zmizel. Je z toho vidět, že někdy záleží více na bechmarku než na Java manažeru.

 

JBenchmark PRO 1.0.18

Link: https://www.jbenchmark.com/download.jsp?benchmark=pro

Testuji...

 

  Jbed Mod IBM J9 TAO Intend
User interface      
Audio - MIDI* NE 2222 714
Audio - MP3 NE NE NE
Camera Shooting Speed NE NE NE
Image loading (JPG) 65 10 35
Image loading (PNG) 183 71 75
JAR reading 1190 378 485
M3G loading 138 NE 3
RMS read-write 65 179 34
Video - 3GPP NE NE NE
CPU      
Business math 267 136 330
Game Physics 372 206 314
Chess 79 24 51
Image Processing 82 31 56
Shortest Route Search 107 NE 110
XML parsing 263 187 190
ZIP compression 149 67 60
       
       

 

Vyhledávání