- Szünetmentes tápegységek (UPS)
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Vezetékes FEJhallgatók
- Milyen monitort vegyek?
- AMD Navi Radeon™ RX 9xxx sorozat
- Az Enermax tényleg nem viccel, ha az új tápjának garanciaidejéről van szó
- Milyen billentyűzetet vegyek?
- Azonnali VGA-s kérdések órája
- TCL LCD és LED TV-k
- Autós kamerák
Új hozzászólás Aktív témák
-
joysefke
veterán
válasz
pmonitor
#9458
üzenetére
static unsafe void teszt_6(int[] source, int n){int[] dest = new int[n];fixed (int* pSource = source, pdest = dest){int* pSource_0 = pSource;int* pdest0 = pdest;int* pmax = pSource_0 + n;for (; pSource_0 < pmax; ++pSource_0, ++pdest0){*pdest0 = *pSource_0;}}}mivel a metódusnak visszatérési értéke nincsen (void), a program végeredménye szempontjából lényeges mellékhatás sincsen (nincsen IO, nem változtat semmilyen állapotot) ezért ezért honnan tudod, hogy futás közben release + optimalizáció beállítással ez egyáltalán lefut? (valószínűleg lefut, de nem kéne)
Ráadásul a timert úgy indítod-állítod le, hogy a memóriamásoláson kívül szinte minden tesztesetedben van ciklikus heap allokáció is. Ha nagyot foglalsz a heapen akkor az triggerelhet egy GC futást is.
Mivel a teszt-metódusaidat ciklusban futtatod, az iterációk között teleszemeteled a heapet halott objektumokkal ezért FOG futni a GC, többször, sokszor. A GC futás valószínűleg több időbe kerül mint maga a memóriamásolás. (pld mert a memóriaterületeket valamikor nullázni is kell stb) . Innentől kezdve a méréseid pontatlanok.
Ha memóriát akarsz kézzel másolni, akkor #9455 szigorúan allokáció nélkül. az kimaxolja a mem sávszélt, az a másolás sebességének elméleti határa
====
Az egészet arra éleztem ki, hogy a "fő programom"(a cutter) esetében sokat kell tömböt másolni. Igaz, hogy csak kis méretűeket.
Csak másolni kell a tartalmat egyik helyről a másikra vagy allokálni kell és feltölteni? Elég jelentős a különbség. (nem ismerem a feladatot)
====
A legnagyobb meglepetést azonban az Unsafe kód okozta. Kis méretű tömb esetén a "középmezőnyben" van. Nagy méretű tömb esetén azonban lényegesen a leggyorsabban végez az összes többinél.
Két oka van:
1,
Az eredeti unsafe teszt-metódusodban nem volt for ciklusos heap allokáció hanem stackalloc volt => nincs GC a szemét eltakarítására, összehasonlíthatatlanul gyorsabb. Az összes többi teszt ahol new int[n] hívódik ciklikusan hatalmas handikeppel indult...
2,
Az unsafe kikapcsolja a tömb hozzáférések során az indexer értéktartomány ellenőrzését. ezzel csökkentetted a ciklusonkénti munkát (indexer értékhatár ellenőrzés + mem másolás helyett csak mem másolás). Gondolom a többi library metódus is unsafe-ként van belül megvalósítva. Csak ugye lsd 1. pont -
pmonitor
aktív tag
válasz
pmonitor
#9458
üzenetére
Az egészet arra éleztem ki, hogy a "fő programom"(a cutter) esetében sokat kell tömböt másolni. Igaz, hogy csak kis méretűeket. És ezt rekurzívan kell tenni(ismétléses permutáció generálásához). A Win api CopyMemory() esetén lényegesen gyorsabb lett az ismétléses permutáció generálása(a rekurzív hívásokban lévő tömb másolások gyorsulása miatt.) .
Ú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!
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Szünetmentes tápegységek (UPS)
- S.T.A.L.K.E.R. - Anomaly
- Milyen okostelefont vegyek?
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- S.T.A.L.K.E.R.: Call of Pripyat
- Lightyear - befektetési app
- Battlefield 6
- Nintendo Switch 2
- Anime filmek és sorozatok
- További aktív témák...
- Philips Hue Gradient Lightstrip hibás
- Killer 1650x Intel AXN 200NGW
- BONTATLAN Új iPhone 17 PRO 256-512GGB Független 1év Apple GARANCIA Deák Térnél Azonnal Átvehető.
- BONTATLAN Új iPhone 17 PRO MAX 256-512GGB Független 1év Apple GARANCIA Deák Térnél Azonnal Átvehető.
- Philips Hue LightStrip Plus v4 1m extension
- Asus Zenbook 14 OLED 2.8K 90Hz HDR 10bit Ryzen5 5600H 16GB 512GB SSD Radeon RX Vega7 Win11 Garancia
- Lenovo LOQ 15IRH8 - 15.6"FHD IPS 144Hz - i5-12450H - 16GB - 512GB - RTX 4050 - Win11 PRO - 1 év gari
- SzoftverPremium.hu
- MacBook felvásárlás!! Macbook, Macbook Air, Macbook Pro
- Apple iPhone 15 ProMax 256GB Kártyafüggetlen 1év Garanciával
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


