Java
Ú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 |