Re: TC65 prenos dat a filesystem
nevrklap@volny.cz
nevrklap@volny.cz
Úterý Srpen 12 20:05:14 CEST 2008
Diky,
zni to rozumne... Uz jsme to trochu poresili, pouzivali jsme kus ciziho
kodu ve kterem byla docela bota s nacitanim dat z filesystemu. Ponekud
divne chovani ciloveho programu ale zustalo, zda se ze tvurce si s prislusnou
normou (uvedena ve specifikaci) moc hlavu nelamal.
P.
>Dobry vecer,
zkusim par postrehu:
1. filesystem - nepouzivejte, pokud nemusit ... je velmi pomaly, hodi
se jen pro data, ktera nechcete ztratit po vypnuti. Pokud s nim delate,
udelejte si pomocne metody a ctete vzdy po vetsich blocich, ne byte po
byte.
2. poskladat si data, nez je poslete pres OutputStream metoda
write(byte[] b) do CSD spojeni - dobry napad. Udelejte si buffer z
bytoveho pole, o nejake vetsi delce a ten pouzivejte na kompletaci dat.
Nealokujte zbytecne nove buffery s kazdou novou zpravou, vyuzijte jeden
stale existujici.
3. predpokladam ze pouzivate vice vlaken, takze si vlakno, ktere zrovna
nemusi vykonavat nejakou cinnost na chvilku uspavejte
Thread.sleep(50). Ostatni dostanou vice casu. Nebo si jej zastavte
pomoci synchronizaci - napriklad: nemusim cist seriovy port, kdyz zrovna
cpu data do GSM-CSD (seriak na TC65 ma interni buffer, takze se to da
zvladat i bez ztraty dat nebo pouzijte CTS/RTS) ...
Nastavovani priorit u vlaken neni legrace, u mne nevedlo k dobrym vysledkum.
4. GarbageCollector - zjednodusene - pousti se automaticky, pokud
dochazi volna pamet pro alokaci novych objektu/promennych, nebo kdyz
je
cas ... uspane thready atp. Kdyz chcete, aby se volal co nejmene v
nevhodne chvile, pak si optimalizujte kod:
a) snazte se vytvaret objekty/promenne s dlouhou platnosti a znovu je
pouzit, nez neustale tvorit nove.
b) nedelte kod do spousty metod - jejich volani je prace se zasobnikem,
alokace lokalnich promennych, uvolnovani .... Musite si vybrat mezi
citelnosti a vykonnosti kodu.
c) pokud vite, co delate (zrovna jste uvolnil nejake objekty), pak si
zavolejte GC rucne. Vyplati se u objektu udelat objekt=null; coz GC
pomuze.
Pri vyse popsanem se vam pres CSD podari poslat data vcelku, aniz by
se
zadrhla.
Oja
Další informace o konferenci Hw-list