Ciao Forum!....Ho un programma C che fa' uso intensivo di Swap LInux (80 Gb), lo uso per implementare un algoritmo di ordinamento su memoria esterna; posso ordinare 5 miliardi di dati interi in circa 30 minuti...e un incremento notevole delle prestazioni si ottiene liberando la memoria allocata dinamicamente quando non è piu' necessaria; deallocando con free(), e aprendo Monitor di Sistema, posso vedere la quantita' di swap utilizzata, scendere sempre di piu' fino a svuotarsi completamente, con conseguente notevole incremento di velocita' nell'esecuzione di uno stesso ciclo di istruzioni; dopo aver tradotto in Java questo programma, tutto procede come per il C, tranne per il fatto che non potendo deallocare manualmente lo swap, questo rimane allocato a 80 Gb fino alla terminazione (anche ponendo a null tutti i riferimenti a oggetti non piu' coinvolti), con conseguente notevole rallentamento dell'esecuzione che termina dopo un ora , quindi in un tempo doppio rispetto al programma C; mi devo rassegnare all'inadempienza runtime della garbage collection oppure si puo' fare qualcosa?
P.S. La chiamata manuale System.gc() l'ho provata e peggiora solo le cose...(paradossalmente fa' salire di piu' lo swap utilizzato..)