Foros del Web » Programación para mayores de 30 ;) » Java »

Pequeño problema con memoria

Estas en el tema de Pequeño problema con memoria en el foro de Java en Foros del Web. Que tal amigos con un pequeño problema. como aparece en el titulo del mensaje tengo ese pequeño problemita, ya incremente la memoria de la maquina ...
  #1 (permalink)  
Antiguo 01/05/2007, 21:49
Avatar de PeterQB  
Fecha de Ingreso: diciembre-2006
Ubicación: La eterna primavera
Mensajes: 39
Antigüedad: 17 años, 4 meses
Puntos: 0
Pequeño problema con memoria

Que tal amigos con un pequeño problema.

como aparece en el titulo del mensaje tengo ese pequeño problemita, ya incremente la memoria de la maquina virtual para que ejecutarlo y si lo realiza pero no entiendo porque se acaba la memoria el codigo es el siguiente donde a = 3000


Código PHP:
public static int[][] crea_matriz_tramos(int a){ 

        
int matriz_ad [][]= new int[a][a]; 
        
String url="jdbc:postgresql://localhost:5432/itinerarios"
        
String sql=null
        
String aux=null

         try 
            
           { 

        Class.
forName("org.postgresql.Driver").newInstance(); 
    
           
Connection conn DriverManager.getConnection(url"postgres""distribuidos"); 

             
Statement s conn.createStatement(); 
   
          
ResultSet rs null

           for(
int x 0x<ax++){ 
  
               
aux String.valueOf(x+1); 

                  
sql="SELECT gid_ady,gid_tramo FROM adyacencia_c WHERE gid_nodo=" aux

                   
rs s.executeQuery(sql); 

                  while(
rs.next()){ 

                         
matriz_ad[x][rs.getInt(1)-1] = rs.getInt(2); 
    
                 }  
           } 

           
s.close(); 
           
conn.close(); 
          } 

        catch( 
Exception e ){e.printStackTrace();} 

        return 
matriz_ad
    } 
este codigo me crea una matriz de adyacencia de registros contenidos en una bd postgresql pero no entiendo porque marca falta de memoria si lo ejecuto normalmente como

Código PHP:
java <nombre_clase
en ves de

Código PHP:
java -Xms128M<nombre_clase
No se si necesite utilizar hilos para dejar residente el proceso y cuando se solicite el algoritmo crear solo un hilo de ejecucion o utilizarlos al sacar los datos de la base de datos.
  #2 (permalink)  
Antiguo 01/05/2007, 23:38
Avatar de Nighter  
Fecha de Ingreso: enero-2007
Mensajes: 97
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Pequeño problema con memoria

ps solo te puedo decir que estas creando una matriz de 3000 * 3000 osea 9 millones de registros, donde cada registro accede a la bd y cada acceso te regresa un resultset cada uno de los cuales usa una memoria equivalente al tipo de variable que regrese o en el peor de los casos un conjunto de resultados, para mi eso es mucho, y estas chupando memoria medio feo, prueba con otras formas, quiza cambiando el tipo de la matriz o usando un MapHash o alguna estructura de datos propia de java
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:43.