- Fotók, videók mobillal
- Amazfit Bip 6 - jót olcsón
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- OnePlus 15 - van plusz energia
- Google Pixel topik
- Okosóra és okoskiegészítő topik
- Soundcore Sleep A30 - a hosszú házasság titka
- Galaxy Buds4/Buds4 Pro: demómodelleken az új szárkialakítás
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Honor Magic6 Pro - kör közepén számok
Új hozzászólás Aktív témák
-
thon73
tag
Visszatérek egy korábbi beszélgetéshez, mert ígértem, hogy számot adok az eredményeimről (ezt egy rövid részben már megtettem). Bocs, egy kicsit hosszabb lesz, aki nem érdeklődik, ugorjon nyugodtan!

Másrészt kicsit Java topicba kívánkozik, de mivel a mérések célja az Android felderítése volt, (no meg itt kezdtünk bele), inkább itt folytattam.A probléma: indexelt utf-8 kódolású fileban ugrálni (seek) ide-oda, és rövid részeket beolvasni. Az első ötlet a Reader, a második ötlet a puffer használata volt. Mindkettő jó, de az alap osztályokkal nem megvalósítható.
fis = new FileInputStream( file ); // byte alapú beolvasás
isr = new InputStreamReader( fis, "UTF-8" ); // már karakteralapú, dekódolt és pufferelt (fix puffer)
br = new BufferedReader( isr ); // readLine is van, és még nagyobbra állítható pufferfis.getChannel().position(pos) segítségével seek megvalósítható. DE! Amíg van a pufferban elem, azt használja. A puffer nem törölhető, az available() sem implementált, amivel skippelni lehetne. Egy megoldást láttam: minden seek után újranyitni a file-t. További hátrány: a puffert teljes egészében dekódolja, ha kell, ha nem.
Megoldás: puffereléssel és utf8 dekódolással bővített Reader osztály (én valójában a RandomAccessFile-t használok a háttérben, de FileInputStream ugyanúgy jó. A "kimenet" azonban Reader lesz.) Ez már másnak is eszébe jutott ITT, én ezt az ötletet fejleszettem tovább.
A tesztben hátulról előre 100 byte-onként végzek lineRead()-et egy 3,8 megás, rövid sorokat tartalmazó szöveges file-ban. Az eredmények megdöbbentőek (sajnos eléggé szórnak) A nem-pufferelt (egyébként azonos osztály) 20000 ms körül teljesített. Ugyanez puffereléssel: 600-900 ms
Kimértem a különböző pufferméreteket is (ez a szórás miatt nehezebben meghatározható). DE! Az jól látszik, hogy 500 byte puffer alatt rosszabb a teljesítmény (800-1000 ms); 500-2000 byte között a legjobb (700-750 ms), 2000 felett pedig konstansan romlik (800-900 ms).
Ez utóbbi eredmények között lényegi különbség (szerintem) nincs, vagyis nincs értelme sokat változtatni a 8192 standard pufferméreten. (((A régi szép időkben ismert szektornyi "raw" readhez amúgy sem enged oda a rendszer)))
A pufferelt/nem pufferelt közötti különbséget sokkal kisebbnek gondoltam. Érdekes, hogy ennek ellenére nincs pufferelésre (gyári) lehetőség RandomAccessFile esetén. 20x különbség nagyon sok.Ha esetleg már valaki küzdött ezzel, és megosztaná a véleményét, nagyon örülnék.

Új hozzászólás Aktív témák
- Modding és elektronikai kérdések
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Fotók, videók mobillal
- Parfüm topik
- Amazfit Bip 6 - jót olcsón
- A fociról könnyedén, egy baráti társaságban
- Energiaital topic
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Revolut
- További aktív témák...
- Apple iPhone 14 Pro 128GB,Újszerű,Dobozaval,12 hónap garanciával
- Apple iPhone 14 Pro 128GB,újszerű, Adatkabel,12 hónap garanciával
- Honor Magic6 Pro 12/512GB Újszerű,Kártyafüggetlen,Tartozékaival. 1 Év Garanciával!
- Apple iPhone 15 256GB,Átlagos,Adatkabel,12 hónap garanciával
- Honor Magic7 Lite 5G 8/256GB Újszerű,Kártyafüggetlen,Dobozos,Tartozékaival. 1 Év Garanciával!
- Bomba ár! Dell Latitude 5495 - Ryzen 5 I 8-16GB I 256SSD I 14" FHD I HDMI I Radeon I Cam I W11 I Gar
- Macbook Pro M3 Max 14" - 36 GB/1TB/ 27% ÁFÁS! - 0333
- MEDION ERAZER Cooling Kit V2 Vízhűtés - MD 62737 Beast 16 X1 gamer laptophoz
- ÚJ ASUS TUF GAMING Geforce RTX 5080 OC Edition 16GB VRAM Ray Tracing DLSS4
- Bomba ár! Lenovo ThinkPad T460s - i5-6GEN I 12GB I 256GB SSD I 14" FHD I Cam I W11 I Garancia!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest




