Hirdetés
- Toomy: FOXPOST régen jó volt, de ma már jobban jársz ha elfelejted.
- Luck Dragon: Asszociációs játék. :)
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- MasterDeeJay: i7 4980HQ asztali gépben (vs i7 4770)
- potyautas: Aktiviti
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- hege8888: Retro Kocka Kuckó harmadjára Hódmezővásárhelyen
- laca223: Miért győz a kollektív meggyőződés akkor is, ha saját magát teszi tönkre?
Ú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!
- Milyen videókártyát?
- Filmvilág
- Elektromos autók - motorok
- Így változik a Galaxy A37 és A57 kamerája
- Hobby elektronika
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Toomy: FOXPOST régen jó volt, de ma már jobban jársz ha elfelejted.
- Luck Dragon: Asszociációs játék. :)
- Víz- gáz- és fűtésszerelés
- Épített vízhűtés (nem kompakt) topic
- További aktív témák...
- ÚJ!! GARIS! MSI MPG B550 GAMING PLUS
- Samsung Galaxy S25 Edge 256 GB / Bontatlan - 3 év gari
- Macbook Pro M3 Max 14CPU/30GPU 36GB RAM 1TB SSD Magyar bill. - 2027. májusig AppleCare+ garancia
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5500 / 16GB DDR4 / RX 6600 8GB / 512 GB SSD
- Asztali PC , i7 7700 , GTX 1080 , 16GB DDR4 , 256GB SSD , 500GB HDD
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- Vásárlunk iPhone 12/12 Mini/12 Pro/12 Pro Max
- HIBÁTLAN iPhone 13 Pro Max 256GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3685
- Apple iPhone 15 Pro Max - Blue Titanium - 256GB - Akku: 84% - Megkímélt állapot!
- iPhone 14 Pro Max 128GB 100% (1év Garancia)
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


