Změřte čas, za který váš mobilní telefon vykoná zadané početní operace a porovnejte jej s konkurencí. Je zde k dispozici javový program, který vše sám provede a předá změřené výsledky.
Nová třída
Osmadvacetiletý ruský vývojář javových aplikací Nikolay Klimchuk vytvořil novou třídu pro profil MIDP konfigurace CLDC 1.0, která patří do javové edice J2ME. Aplikace dokáže provádět výpočetní operace s pohyblivou řádovou čárkou. Třída se jmenuje enson.midp.Float. Nabízí k použití řadu funkcí s využitím datových typů float a double jako sinus, cosinus, tangens nebo odmocnina. Syntax funkcí, které nová třída používá, je shodná s funkcemi třídy java.util.Math v javových edicích J2SE a J2EE.
Abychom pro nezasvěcené vysvětlili použité zkratky, tak J2ME zanamená Java 2 Micro Edition, což je nejmenší ze tří základních edic javy. Je určena pro jednodušší zařízení, která nezvládnou standardní edice javy. Další edice pak jsou J2SE a J2EE. Mikroedice J2ME se dělí dále na konfigurace a profily. Konfigurace CLDC je ta ze dvou dílčích konfigurací, která je určena pro malá jednoduchá zařízení. Doposud má dvě hlavní vývojové verze 1.0 a 2.0. Profil je potom něco, co dále upřesňuje konfiguraci. Jedním z možných profilů pro konfiguraci CLDC je MIDP (Mobile Information Device Profile). Je určen přímo pro mobilní zařízení. Ke specifikaci CLDC přidává například požadavky na displej a ovládání. Aplikacím pro tuto kategorii se podle základní třídy profilu MIDP říká midlety.
Měření rychlosti
Nikolay Klimchuk sestavil kromě třídy také javovou aplikaci, aby prověřil, jak rychlé je v různých mobilních telefonech provádění matematický operací. Aplikace měří čas, který je třeba pro jejich vykonání. Jmenuje se FloatTest a je volně ke stažení na webových stránkách. Tamtéž je k dispozici i zmiňovaná třída henson.midp.Float a zdrojové kódy. Aplikaci stačí stáhnout, nainstalovat a spustit; za okamžik už víte, jak je váš telefon rychlý.
Výsledky měření u některých běžných telefonů jsou k dispozici v následující tabulce. Výsledky vypovídají o rychlosti provádění matematických operací v javě. V posledním sloupci je potom uveden součet všech časů za dílčí operace, jeho porovnáním lze přibližně porovnat zjistit, jak jsou které telefony rychlé. Časy se týkají pochopitelně několikanásobného opakování operace. Goniometrické funkce sin, cos, tan jsou prováděny 100 krát, sčítání, násobení a dělení je opakováno 10 000 krát a odmocnina se měří pro 1000 opakování.
Porovnání časů pro vykonání operace |
Mobil |
sin (ms) |
cos (ms) |
tan (ms) |
+ (ms) |
× (ms) |
÷ (ms) |
odm. (ms) |
celkem (ms) |
Nokia |
N-Gage |
1016 |
594 |
1641 |
1297 |
3438 |
6328 |
4219 |
18533 |
6310i |
4370 |
2461 |
7089 |
5363 |
14673 |
24131 |
20402 |
78489 |
3510i |
4202 |
2435 |
6837 |
5324 |
14550 |
22370 |
16678 |
72396 |
6100 |
4407 |
2534 |
7065 |
5410 |
14905 |
23794 |
16069 |
74184 |
6610 |
4381 |
2511 |
7158 |
5492 |
15056 |
23874 |
17318 |
75790 |
3650 |
1094 |
609 |
1766 |
1297 |
3484 |
7031 |
4641 |
19922 |
7650 |
765 |
453 |
1265 |
1031 |
2515 |
5328 |
? |
– |
6600 |
328 |
157 |
500 |
188 |
547 |
3235 |
1328 |
6283 |
6220 |
6086 |
3623 |
10149 |
8325 |
22395 |
32238 |
23670 |
106486 |
7600 |
494 |
290 |
795 |
614 |
1578 |
2482 |
1622 |
7875 |
3100 |
6727 |
3967 |
10949 |
9054 |
24905 |
36291 |
26268 |
118161 |
6230 |
965 |
538 |
1654 |
1088 |
3212 |
5165 |
? |
– |
7250 |
4254 |
2431 |
7052 |
5466 |
14943 |
22483 |
14524 |
71153 |
7610 |
281 |
141 |
438 |
187 |
453 |
2719 |
1109 |
5328 |
Siemens |
S55 |
28899 |
16559 |
50899 |
36306 |
101370 |
200670 |
169181 |
603884 |
M55 |
30441 |
17025 |
53584 |
38420 |
105500 |
207800 |
? |
– |
SX1 |
1110 |
672 |
1875 |
1563 |
3985 |
7141 |
4203 |
20549 |
M65 |
895 |
156 |
351 |
305 |
392 |
1149 |
891 |
4139 |
SonyEricsson |
T610 |
20580 |
11575 |
33585 |
28100 |
71365 |
87740 |
76280 |
329225 |
P900 |
250 |
109 |
344 |
156 |
406 |
2203 |
1062 |
4530 |
P800 |
500 |
282 |
813 |
625 |
1563 |
3250 |
1750 |
8783 |
Podle součtu časů překvapivě v této malé statistice, která si neklade za účel být kompletní, nejlépe vychází Siemens M65. O kousek předstihl dokonce i Sony Ericsson P900. Na třetím místě je pak v těsném závěsu Nokia 7610. Nejhůře je na tom Siemens S55.
Měli jsme možnost aplikaci FloatTest vyzkoušet na telefonech Siemens SX1 s M65 a také na Nokii 7610. Při opakovaném měření se výsledky jednotlivých zkoušek mírně liší, ale vzhledem k tomu, že se pohybujeme v řádu milisekund, jsou výsledky v tabulce odpovídající a věrohodné. Z vlastní zkušenosti můžeme potvrdit, že telefony, které vycházejí na horších příčkách, jsou v Javě opravdu pomalé.
Zkuste si to
Rádi bychom vás vyzvali, abyste si aplikaci vyzkoušeli na svých telefonech a podělili se s námi a s ostatními čtenáři o výsledky svých měření. Užitečné budou zejména výsledky telefonů , které ještě v tabulce schází. Zjištěné hodnoty pište do diskuze k tomuto článku v rozumném a pro ostatní pochopitelném formátu. Navrhuji například tento jednoduchý způsob:
Název mobilu
sin:číslo, cos:číslo, tan:číslo, sčítání:číslo, násobení:číslo, dělení:číslo, odmocnina:číslo.
Dalším programem, který testuje rychlost javových telefonů je jBenchmark. Orientuje se zejména na rychlost grafiky a podíváme se na něj zase příště.