Hirdetés
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Lalikiraly: Kinek milyen setupja van?
- Brogyi: CTEK akkumulátor töltő és másolatai
- gilfoyle: Esetem a xiaomishop.hu-val
- Gurulunk, WAZE?!
- potyautas: Az utolsó közös út
- gban: Ingyen kellene, de tegnapra
- Meggyi001: Eldugott helyek Párizsban, amiket jó eséllyel még nem láttál...
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
Új hozzászólás Aktív témák
-
Gregorius
őstag
Azonban a struct legnagyobb "hátránya", vagyis az érték szerinti hivatkozás mellett max. 16 KB lehet az összes taggal együtt
Az egyetlen limit, amibe bele lehet ütközni, az a stack overflow valahol 1M környékén (64-bites app esetén kicsit kevesebb, mint 32-bites esetén). De ekkora struct létrehozásához már komolyan trükközni kell egymásba ágyazásokkal, ugyanis a fordító belső limitje miatt egyetlen structnak sem lehet 64k darabnál több fieldje. De ez a limit ugyanúgy vonatkozik classokra is.Megjegyzem az ajánlott struct méret a pár tíz bájt alatt van. Ennél nagyobb structnál már valószínűleg hatékonyabb classt használni. Egy szint fölött túl nagy overhead az egész struct tartalom másolgatása az átadásokkor.
nincs automatikus GC sem
Milyen GC-nek kellene lennie? A struct pont azért tud hatékonyabb lenni adott helyen a classoknál, mert önmagában semmilyen GC-ben nem vesz részt. Ha a stacken foglal helyet, akkor pontosan akkor szabadul fel a memóriaterülete, amikor kiesik a scope-ból. Ellentétben egy class változó által mutatott objektumot adott esetben csak később gyűjt be a GC. Ha boxolva vagy más objektum részeként van a struct a heapen, akkor persze ugyanúgy GC-ződik, mint egy sima class, utóbbi esetben pontosan akkor szabadul fel a területe, mint a tartalmazó objektumé.Ezek szerint nem érdemes C#-ban struct-ot használni?
Kisméretű adatcsomagok tologatására érdemes, ahol szemantikailag is indokolt a használata. Illetve mint az elhangzott P/Invoke esetén gyakran ezt követeli meg a hívás.Van még pár teljesítményprobléma, ami ellenjavallja a structok használatát, de ezek nem a struct jellegéből adódnak, hanem a JIT fordító retardáltságából és idővel valószínűleg megoldódnak.
Továbbá van egy érdekes használati mintája a structnak: hatékony wrappert lehet vele írni, amikor az öröklődés nem megoldható. Ilyenkor ugyanis a struct csak egyetlen objektumreferenciát tartalmaz és ez másolódik mindenhova. Ez gyakorlatilag azt jelenti, hogy a struct többé-kevésbé class szemantikával működik, annak megfelelő a memóriafoglalása is, csak egy rakás másik metódust rá lehet aggatni.
Ú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!
- Gran Turismo
- Milyen TV-t vegyek?
- Milyen billentyűzetet vegyek?
- OLED TV topic
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Vicces képek
- Luck Dragon: Asszociációs játék. :)
- Futás, futópályák
- A fociról könnyedén, egy baráti társaságban
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- További aktív témák...
- Asus Rog Ergo gamer szék
- X13 Gen4 13.3" FHD+ IPS i7-1355U 16GB 512GB NVMe magyar vbill ujjlolv IR kam gar
- Bomba ár! Lenovo ThinkPad L512 - i5-520M I 4GB I 120GB I DVDRW I 15,6" HD I Cam I W10 I Garancia!
- Bomba ár! HP ProBook 450 G1 - i3-4GEN I 4GB I 500GB I HDMI I 15,6" HD I Cam I W10 I Garancia!
- Bomba ár! Dell Latitude 3310 2in1 i5-8G I 16GB I 256SSD I HDMI I 13,3" FHD Touch I Cam I W11 I Gari
- Samsung Galaxy S23 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 15 Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon Felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RTX 5060 8GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 13 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3434
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest