Omezení velikosti pole – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Omezení velikosti pole – Java – Fórum – Programujte.comOmezení velikosti pole – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
McQman
~ Anonymní uživatel
5 příspěvků
26. 10. 2010   #1
-
0
-

Zdravím,
potřeboval bych pomoct ... potřebuji vytvořit opravdu velké dvourozměrné pole ... základní předpoklad byl:

static int[][] spb = new int[DEL][256];
// kde DEL je hodnota přes 200 000 ... (konkrétně potřebuji abnormálně velké pole o 564 859 072 961 řádcích)

ovšem program mi napíše již při 265 720 řádcích "OutOfMemoryError: Java heap space"

Poradil by mi někdo, co s tím mohu udělat ... potřebuji velmi rychlí přístup k hodnotám v poli.

Nahlásit jako SPAM
IP: 89.103.19.–
Reklama
Reklama
KIIV+42
God of flame
26. 10. 2010   #2
-
0
-

vis o tom, ze za predpokladu, ze ma int 4B a chces ho na radek 256x to dava:
(4*256*564859072961)/(1024*1024*1024*1024) = 526.06600612495094537735 TB (a to ne marketingovejch:))

a (4*256*256720)/(1024*1024) = 250MB ... pri trose stesti a velky ramce muzes nastavit heap na treba 4/8GB (nezapomen si nechat neco na system)

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
McQman
~ Anonymní uživatel
5 příspěvků
26. 10. 2010   #3
-
0
-

To KIIV :
tak to jsem opravdu nevěděl ...

v tom případě bych potřeboval pomoci s trochu něčím jiným ... vím totiž už dopředu že pole bude z více než 90% prázdné ... je možné že by pomohlo pouze alokování těch řádků, které by byly použity ?

něco ve smyslu:
** static int[][] spb = new int[564 859 072 961][ ];
a dodatečně v případě potřeby
** spb[i] = new int[256]; //vcelku by možná stačilo i 128 (musel bych si to ještě teoreticky ověřit)
??

ovšem mám obavu, že podle vašeho vztahu stejně překročím velikost pole i bez další alokace ...

Potřeboval bych vyjádření k této alternativě.

Nahlásit jako SPAM
IP: 89.103.19.–
McQman
~ Anonymní uživatel
5 příspěvků
26. 10. 2010   #4
-
0
-

To KIIV :
a ještě jedna otázka: jak bych mohl nastavit heap ?

Nahlásit jako SPAM
IP: 89.103.19.–
Krychlik
~ Anonymní uživatel
195 příspěvků
27. 10. 2010   #5
-
0
-

To McQman : Takove pole na domacim stroji opravdu nikam nenacpes. Jestli neco takoveho potrebujes, tak mas asi celou koncepci programu spatne. Prozradis o co se snazis? Treba to jde prespat na neco rozumneho.

Nahlásit jako SPAM
IP: 78.128.199.–
KIIV+42
God of flame
27. 10. 2010   #6
-
0
-

java -Xms<initial heap size> -Xmx<maximum heap size>

Defaults are:
java -Xms32m -Xmx128m

muzes pouzit spojovy seznam.. pokud to java umi

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
McQman
~ Anonymní uživatel
5 příspěvků
27. 10. 2010   #7
-
0
-

To Krychlik :
máš pravdu ... celou noc jsem o tom přemýšlel a protože celé pole bylo příliš veliké a podle Kiiva nereálné, tak jsem našel řešení

pole jsem rozdělil na několik polí ... jak jsem výše psal, tak jsem skutečně dospěl k názoru, že když je více než 90% pole nevyužito, tak je není třeba tvořit ... z celého množství jsem dospěl k závěru, že budu potřebovat cca 300.000 řádků ... ve třech nezávislých až 5-rozměrných polích k tomu mohu dospět, když budu generovat jen potřebné řádky ... bez přenastavení heapu

o čem je program ... promiň ale zatím si to nechám pro sebe ;)

Nahlásit jako SPAM
IP: 89.103.19.–
McQman
~ Anonymní uživatel
5 příspěvků
27. 10. 2010   #8
-
0
-

To KIIV :
díky

Nahlásit jako SPAM
IP: 89.103.19.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 23 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý