Salve,
ho notato con molto rammarico che le strutture dati di java.util non sono affatto efficienti in spazio. Ad esempio per
10 milioni di interi allocati in questo modo ho un consumo di memoria (secondo il windows task manager) totale di 420mb. Utilizzando invece gli array:codice:List<Integer> L = new ArrayList<Integer>(); for(int i=0;i<10000000;i++) L.add(i);
il cosumo scende a 46mb che considerando quanto effettivamente occupano gli interi (che sono a 32bit) più altre informazioni conservate eventualmente dalla jvm fanno un costo praticamente pari a quello atteso...codice:int L[] = new int[10000000]; for(int i=0;i<10000000;i++) L[i]=i;
La situazione non migliora con Vector e peggiora di molto con LinkedList...qualcuno ha qualche spiegazione in merito? Considerando che ho un problema in cui ho a che fare con qualcosa nell'ordine delle centinaia di milioni di interi, e che ho bisogno di strutture dati per la loro gestione, mi trovo alquanto in difficoltà!

Rispondi quotando
