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

Optimizacion de tiempos

Estas en el tema de Optimizacion de tiempos en el foro de .NET en Foros del Web. Como les he venido comentando, estoy trabajando con serializacion de Hashtables, la serializacion es mas lenta mientras tamaño tiene el objeto que vas a deserializar ...
  #1 (permalink)  
Antiguo 16/06/2008, 09:51
 
Fecha de Ingreso: julio-2006
Mensajes: 150
Antigüedad: 17 años, 9 meses
Puntos: 0
Optimizacion de tiempos

Como les he venido comentando, estoy trabajando con serializacion de Hashtables, la serializacion es mas lenta mientras tamaño tiene el objeto que vas a deserializar por lo que decidi picar la tabla de hash en varios pedazo lo que hace que sea mas rapido obteniendo un rendimiento que mejoro desde 4 mins a 1,24 mins pero para efectos de lo que estoy trabajando aun es mucho tiempo podrian uds ayudarme a optimizar un poco mas este codigo que adjunto a ver si ven algo que yo no veo.

//Serializacion
System.Console.WriteLine("Inicio de Serializacion nueva " + DateTime.Now);

foreach (DictionaryEntry key in a)
{
campos camp = new campos();
camp.clav = key.Key.ToString();
camp.posi = (List<int>)key.Value;
contador++;
listaCamp.Add(camp);

if (contador == 12500)
{
arch++;
Stream stream = new FileStream("D:\\Ernesto\\Pruebas\\prueba" + arch + ".txt", FileMode.OpenOrCreate, FileAccess.Write);
formatter.Serialize(stream, listaCamp);
stream.Close();
contador = 0;
listaCamp.Clear();
}
}

System.Console.WriteLine("Fin Serializacion Nueva " + DateTime.Now);


BinaryFormatter bs = new BinaryFormatter();


//Deserializacion
System.Console.WriteLine("Inicio Deserializacion Nueva " + DateTime.Now);

for (int i = 1; i < 400; i++)
{
Stream stream1 = new FileStream("D:\\Ernesto\\Pruebas\\prueba" + i + ".txt", FileMode.Open, FileAccess.Read);
List<campos> lista = new List<campos>();
lista = (List<campos>)bs.Deserialize(stream1);
for (int j = 0; j < lista.Count; j++)
{
String clavecita = lista[j].clav;
List<int> pos = new List<int>();
pos = (List<int>)lista[j].posi;
b.Add(clavecita,pos);
}
System.Console.WriteLine("Archivo # " + i + " " + DateTime.Now);
}

System.Console.WriteLine("Fin Deserializacion Nueva " + DateTime.Now);
  #2 (permalink)  
Antiguo 16/06/2008, 09:52
 
Fecha de Ingreso: julio-2006
Mensajes: 150
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Optimizacion de tiempos

Y esta es la estructura

[Serializable]class campos
{
String clave;
List<int> posiciones = new List<int>();

public string clav
{
get
{
return clave;
}
set
{
clave = value;
}
}

public List<int> posi
{
get
{
return posiciones;
}
set
{
posiciones = value;
}
}

}
  #3 (permalink)  
Antiguo 16/06/2008, 11:08
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Optimizacion de tiempos

estas utlizando hilos, si no seria la opcion
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
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 19:25.