Kezdőoldal » Számítástechnika » Programozás » Hogyan lehetne ezt megoldani?...

Hogyan lehetne ezt megoldani? Esetleg alternatívák? C#

Figyelt kérdés

Az alább sor OutOfMemory kivételt dob:


Area[,,] areas = new Area[2560, 2560, 60];


az Area egy class, 3 mezővel, semmi különös.


Azt szeretném megtudni, hogy hogyan lehetne ezt a problémát elhárítani, vagy esetleges alternatívák a problémára.


Egy játék mapjának akarom eltárolni koordinátánként, hogy mi van ott (x,y,z) . Hogyan lehetne ezt kivitelezni kevésbé problémás és elegánsabb módszerrel?


Köszönöm előre is a válaszokat! Megy a plusz :)



#játék #map #Visual C# #array #multidimensional
2015. máj. 3. 18:25
1 2
 1/15 anonim ***** válasza:
Minden mezőn van valami?
2015. máj. 3. 20:02
Hasznos számodra ez a válasz?
 2/15 A kérdező kommentje:
az összeset szeretném valahogy tárolni, hogy melyik ponton mi van
2015. máj. 3. 20:06
 3/15 anonim ***** válasza:
Akkor teljesen jó ez a megoldás!
2015. máj. 3. 20:12
Hasznos számodra ez a válasz?
 4/15 A kérdező kommentje:
Nem, mert nem lehet ekkora tömböt létrehozni :D
2015. máj. 3. 20:13
 5/15 anonim ***** válasza:
Ez végül is csak ~5000 giga lenne (ha tárolsz 3 db 32 bites számot), semmi különös.
2015. máj. 3. 20:31
Hasznos számodra ez a válasz?
 6/15 anonim ***** válasza:

Ja a számokra nem is figyeltem, bocsi :-S

Akkor viszont tárold el az elemeket kiterjedéssel együtt és csapd hozzá a koordinátájukat és tedd be őket egy listába :)

2015. máj. 3. 20:59
Hasznos számodra ez a válasz?
 7/15 anonim ***** válasza:

#5: Vmit nagyon elszámoltál.

A tömb maga 3 GB, ha 64 bites cuccról van szó (és mért ne arról lenne, hiszen 32 biten maga a tömb elfoglalna 1,5 g igát, az adatnak nem maradna hely.

Az elemenként 3*32bit (+16 byte overhead objectenként, azaz 28 byte összesen) 10.25 GB memóriát igényel, tehát közel nem kell 5000 GB. Ha van 32 GB a gépedben, akkor elvileg mennie kéne.

2015. máj. 4. 08:34
Hasznos számodra ez a válasz?
 8/15 anonim ***** válasza:
# 7 Most, hogy már van két hasraütésszerű becslés is a tömb méretére, legalább te leírhatnád, hogy hogyan számoltál, illetve honnan szedted ezeket a varázsszámokat. :D
2015. máj. 4. 09:49
Hasznos számodra ez a válasz?
 9/15 A kérdező kommentje:
azt tudom hogy ez a megoldás nagyon nem jó teljesítmény ügyileg :) A kérdés főleg arra irányul, hogy hogyan lehetne ezt megoldani egy másik módszerrel?
2015. máj. 4. 20:21
 10/15 anonim ***** válasza:

Két lehetőséged van:


Ha fix a pálya, akkor tárolod fájlban (esetleg tömörítve) a HDD-n, és a memóriába mindig csak és kizárólag azt hívod be, amire szükséged van. Ez statikus, előre létrehozott pálya esetén használható.


A kettes számú megoldás, hogy tárhely foglalás helyett a CPU-t használod, és on-the-fly hozod létre a pályát. Kvázi egy seedel meghatározott random generátor, ami mindig ugyanazt a pályát adja vissza adott koordinátára. Ekkor a CPU fog dolgozni inkább, viszont helyet alig-alig kell foglalnod. (vagy seed nélkül vagy egy random pályád).

2015. máj. 5. 08:19
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!