Salve ragazzi,
sono da un po' di tempo impegnato in un problema che comporta la risoluzione di un sistema lineare di circa 4900 equazioni in 4900 incognite.....(chi non vorrebbe trovarsi al mio posto!?)
.... va da se che, anche solo per affacciarmi ad un problema del genere, devo stare bene attento a fare economia di spazio utilizzato... oramai sogno anche la notte l'eccezione java.lang.OutOfMemoryError !!! :P
a tal proposito vi pongo un paio di domandine... senza entrare troppo nel merito...
perché se creo un array bidimensionale così definito
codice:
public static void main(String[] arg){
int num =16100;
int[][] g = new int[num][num];
System.out.println("...OK..."); }
va tutto per il meglio, mentre se creo un vettore con la stessa quantità di elementi
codice:
public static void main(String[] arg){
int num =16100;
int[] g = new int[num*num];
System.out.println("...OK..."); }
vado a rincappare nel mio caro java.lang.OutOfMemoryError ??? devo dedurre che 2 dimensioni "occupano" meno di una sola? quindi dovrei preferire questa struttura?
--- domandina veloce numero due ---- (so ke normalmente se ne pone solo una per post!)
perché se provo ad aumentare lo spazio della JVM non posso superare i 1024 mega? ... il mio pc dispone di 2giga di ram... ora, nn pretendo di utilizzarne 2048 ... però... che diamine!
e cmq questo problema rimane anche se uso un pc con 4giga di ram!
nn so... delucidatemi!
grazie mille