LINUX
hwsw famulus
hwsw at famulus.hu
Tue Mar 29 09:54:25 CEST 2005
>> ARM-re van JAVA OS.
>> ARM sokszor gyorsabb mint a mega128.
> Nem. Baromi lassu a mexakitas-kezeles. Nekem siman megy masodpercenkent
> tobb 10000 mexakitas AVR-en, ARM-on nagyon behuzna a kezifeket.
> (Nem erre valo, ugy is egy masik uC csinalna a kritikus idoziteseket, amit
> nem javaban programoznank, tehat a problema nincs megoldva)
> Egyik gond, a masik hogy a Java progik garantalt reakcioideje kritikan
> aluli. A 2GHz P4-et egy assemblyben programozott barmilyen uC nagyon
> csunyan elveri.
> Tehat meg kell irni C/asm-ben az osszes drivert, periferiak kezeleset,
> a szamitasokat. Ami marad, tehat ezen komponensek sorban meghivasa, az
> mehet Java-ban, de minek?
>> Arnold
> Valenta Ferenc <vf at elte.hu> Visit me at http://ludens.elte.h u/~vf/
Nos, a locsolkodast kipihenve kicsit olvasgattam az embedded JAVA temaban
tegnap delutan....
A dolog egyetlen hatulutoje a GC (garbage collection) azaz az automatikus
memeoria felszabaditas,
ami ugye a JAVA KOTELZO resze....es legnagyobb ELONYE.
Ez lenyegeben ket mododn oldhato meg:
- a tobbi processzhez addig off-line, tehat megall az elet szamukra
ez az ut a real-time vilagban nyilvan nem jarhato
- a tobbi proceszhez kepest kisebb prioritasu hatter processzben
ekkor megno a memoria igeny es jelentos szamitasi teljesitmenyt visz el
Ami azt jelenti, hogy algoritmustol 25 szorosig terjed a lassulas.
Ami latszik, hoyga JVM igenis gyorsabb a GCC-nel pl.....
ATmega128 eseten (kulso RAM-al szerelve) 4 MHz!!!! orajel esetn vizsgalva.
(A cuccos JVM kiepitestol fuggoen 61-89 K flash-t es <32 K RAM-ot ker.)
Kulonbozo teszt progik eseten az alabbi aranyokat hozta ki:
GCC 100%
GCJava 202%
SUN JVM 90% !!!!!!
RealJAVA no GC 209% (ez meg elmegy..)
RealJAVA with GC 2470% :-(((
RealJAVA eseten
az interrupt latency 2-14 uS,
response time 27-43 uS
a task valtas interruptban worstcase 963+358*taskokszama orajel
a task valtas normal worstcase 740+12*taskokszama orajel
mutex kezeles 1024+12*taskokszama orajel
objektum letrehozas 234+78*i+54*n orajel
100 uS thread timing eseten a workload ~ 30 uS
(tehat 10 Khz meg megy azert...)
Nos, nagyjabol igy all a manapsag a dolog technikailag embeddedJAVA ugyben
A nem ilyen aprocska 4MHz-es ATMega128 eseten, nyilvan javul a helyzet...
.
Elonynek tartjak a teljes programozoi szintiu compatibilatast
a konnyu kapcsolodast mas eszkozokhoz TCP/IP alapon.
A szabvanyos file kezelest, a pointermentes adatkezelest
a szigoru tipusossagot, szoval a
programozoi hibaelkovetes minimalizaltsagat.
Hatranynak a GC miatti nagy overhead-t.
A JVM-t egyebkent ASM betetes C-ben irtak
Meglatasom szerint, olyan feladatok eseten amik nem igenyelnek
extra gyors reakciot, viszont komplexek ill.
komolyabb userinterface kivannak igenis hasznalhato lesz.
Ha hozzafer majd a foldi halando is....mert
letolthetot nem talaltam a fel nap alatt sehol.
KJ
More information about the Elektro
mailing list