Hirdetés
- Luck Dragon: Asszociációs játék. :)
- droidic: Windows 11 önállóság nélküli világ: a kontroll új korszaka
- Real Racing 3 - Freemium csoda
- Gurulunk, WAZE?!
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Brogyi: CTEK akkumulátor töltő és másolatai
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- kraftxld: Diáklaptop - Dell Latitude 3140 - Királyunk ajándéka
Új hozzászólás Aktív témák
-
joysefke
veterán
válasz
DrojDtroll
#9337
üzenetére
public static int[,] Get4mIntArrBufferedSpan(string fileName){var sw = new Stopwatch();uint heigth = 2048;uint width = heigth;var result = new int[heigth, width];var buffSize = sizeof(ushort) * heigth;var buff = new byte[buffSize];using (var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None, bufferSize: 1024 * 1024)){sw.Start();for (int w = 0; w < width; w++){int chunk = 0;while (chunk < buffSize)chunk += fs.Read(buff, chunk, (int)buffSize - chunk);var shortArr = MemoryMarshal.Cast<byte, ushort>(buff);for (int h = 0; h < heigth; h++)result[h, w] = shortArr[h];}sw.Stop();Console.WriteLine($"{nameof(Get4mIntArrBufferedSpan)} took {sw.ElapsedMilliseconds}ms");}return result;}Nekem a fenti kód pontosan ugyanazt az eredmény tömböt dobja ki mint a te első metódusod. A különbség annyi, hogy a itt while ciklus megpróbál egyszerre 4096byteot (2048db ushort) kiolvasni a streamből, a kiolvasott byte tömböt castolja ushort-tömbre azzal pedig feltölti egy oszlopodat.
Szóval itt is rossz a tömb bejárási sorrendje, de a Stream.Read() metódus úgy tűnik, hogy ennyivel hatékonyabb, mint egyenként ushortokat olvasgatni. (nálam pontosan duplázódott a sebesség)
A fenti kódban ha a mátrix bejárási sorrendje "normalizálódna" akkor további 3x lenne gyorsabb. ==> tehát igen, itt a processzor fogja vissza a fájlműveletet

Ebben az esetben lenne értelme egyszerre 2048db elemnél többet is olvasni. Az még dobna rajta.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Eredeti játékok OFF topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen autót vegyek?
- Miskolc és környéke adok-veszek-beszélgetek
- Battlefield 6
- Kuponkunyeráló
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Formula-1
- ASZTALI GÉP / ALKATRÉSZ beárazás
- Milyen széket vegyek?
- További aktív témák...
- Fujifilm 33/1.4 R LM WR
- Crucial P310 1TB M.2 2230 NVME PCI-E 4.0 x4 - Új, bontatlan - 7100-6000 MBs - Eladó!
- Használt NVME M2 SSD-k - 1000 GB tól 2048GB-ig Samsung Hynix Intel Kioxia WD Micron Toshiba
- WD Black SN770M 2TB M.2 2230 NVME PCI-E 4.0 x4 - Új - 5150-4850 MBs - Eladó!
- Gamer PC 2025, Komplett gép, Garanciális alkatrészek, BESZÁMÍTÁS
- GYÖNYÖRŰ iPhone X 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3586, 100% Akkumulátor
- Bomba ár! Lenovo X13 Yoga G1 - i5-10G I 8-16GB I 256SSD I 13,3" FHD Touch I Cam I W11 I Gari!
- HIBÁTLAN iPhone 14 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3237
- ÚJ HP Pavilion 16 - 16"IPS WUXGA - Ryzen 5 8540U 16GB - 512GB SSD - Win11 - 3 év garancia - MAGYAR
- BESZÁMÍTÁS! GIGABYTE Z370P PRO i7 9700 16GB DDR4 512GB SSD RTX 2070 SUPER 8GB CM TD500 700W
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


