Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Optimizacion de tiempos (http://www.forosdelweb.com/f29/optimizacion-tiempos-596995/)

vilagutv7 16/06/2008 09:51

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);

vilagutv7 16/06/2008 09:52

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;
}
}

}

Peterpay 16/06/2008 11:08

Respuesta: Optimizacion de tiempos
 
estas utlizando hilos, si no seria la opcion


La zona horaria es GMT -6. Ahora son las 22:26.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.