- Geri Bátyó: Agglegénykonyha 1 – rizseshús másképp
- Luck Dragon: Asszociációs játék. :)
- sh4d0w: Vigyázz a háttértáradra...
- sziku69: Fűzzük össze a szavakat :)
- LordAthis: AI Kérdés érkezett - 3600 soros Spagetti kód refaktorálása és budget
- Geri Bátyó: Agglegénykonyha – bevezető - igényfelmérés
- Lalikiraly: Astra kalandok @ Harmadik rész
- bambano: Bambanő háza tája
- sziku69: Szólánc.
- Gurulunk, WAZE?!
Ú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
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen házat vegyek?
- Fejhallgató erősítő és DAC topik
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Mobil flották
- Az előírások megszegése miatt éghet le egyes alaplapokon a Socket AM5 foglalat
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- A lemondást javasolja az Intel vezetőjének Donald Trump
- HP notebook topic
- Futás, futópályák
- E-roller topik
- További aktív témák...
- BESZÁMÍTÁS! Apple MacBook Pro 16 M4 Max 36GB RAM 1TB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! Apple MacBook Pro 14 M4 Max 36GB RAM 1TB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! Apple MacBook Pro 16 2024 M4 Max 64GB 2TB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! Apple Macbook Pro 13 2020 M1 16GB 1TB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! ASUS TUF VG27AQ 165Hz QHD IPS 1ms monitor garanciával hibátlan működéssel
- Eladó karcmentes Apple iPhone 12 128GB / 12 hó jótállással
- Bomba ár! Dell Latitude E7450 - i5-5GEN I 8GB I 250GB I 14" FHD I HDMI I Cam I W10 I Garancia!
- 24 hónapos PlayStation Plus Premium előfizetés a legolcsóbban, egyenesen a PlayStation-től!
- Bomba ár! HP Pavilion 15 - i7-1065G7 I 16GB I 512SSD I Nvidia GTX1050 I 15,6" FHD I Cam I W11 I Gar
- LENOVO IdeaPad L340-17IRH - 17,3"FHD IPS - i7-9750H - 8GB - 1TB - Win10 - GTX 1650 - MAGYAR
Állásajánlatok
Cég: FOTC
Város: Budapest