Opened 14 years ago
Last modified 14 years ago
#407 closed defect
Memoria de TOL creando y destruyendo objetos MMS desde archivo — at Version 5
Reported by: | atorre | Owned by: | Pedro Gea |
---|---|---|---|
Priority: | blocker | Milestone: | Release 0.6 |
Component: | General | Keywords: | Memoria, Carga, Destrucción, Objetos, Archivo |
Cc: |
Description (last modified by )
Hola MMS,
parece que existen problemas al crear y destruir objetos creados desde archivo. Por favor, intentad compilar el ejemplo de más abajo. El objetivo es mostrar cómo va evolucionando la memoria de TOL a cargar una estimación y, después, vaciarla. En principio, hice una prueba con una estimación de samples (MatVeh) pero "pesa" muy poco y no muestra la realidad del problema que tenemos diariamente. Os dejo otro archivo con una estimación de un modelo Probit con estrategia BSR.
Set MemoStat(Real void)
{
Set memSta = MemoryStatus(?);
WriteLn("MemoryStatus: "<< memSta);
Real pAva_Phys = memStaAvailPhys?/memStaTotalPhys?;
Real pAva_PgF = memStaAvailPageFile?/memStaTotalPageFile?;
Real pAva_Vir = memStaAvailVirtual?/memStaTotalVirtual?;
WriteLn("%Avail_Phys: "<< pAva_Phys);
WriteLn("%Avail_PageFile: "<<pAva_PgF);
WriteLn("%Avail_Virtual: "<< pAva_Vir);
WriteLn("NObject: "+ IntText(NObject));
WriteLn("NCore: "+ IntText(NCore));
memSta << pAva_Phys, pAva_PgF, pAva_Vir, NObject, NCore ?
};
Set For(0, 100, Set(Real cont)
{
WriteLn(Repeat(NL, 3) +"Iter: "+ IntText(cont) + Repeat(NL, 3));
Set memStt = MemoStat(?);
Real If(cont, MMS::Container::LoadFile("C:/Mat.Veh_BSR__1.0.oza"));
Real If(cont, MMS::Container::LoadFile("C:/EEPTHE.Mod.BAM_Otr_Probit_BSR__3.1.oza"));
Real If(cont, MMS::Container::RemoveEstimations(?));
Real Sleep(1);
cont ? << memStt
});
Change History (5)
comment:1 Changed 14 years ago by
Keywords: | Memoria Carga Destrucción Objetos Archivo added |
---|
comment:2 Changed 14 years ago by
Modifico el código. El anterior no funcionaba directamente.
Set MemoStat(Real void) { Set memSta = MemoryStatus(?); WriteLn("MemoryStatus: "<< memSta); Real pAva_Phys = memSta[3]/memSta[2]; Real pAva_PgF = memSta[5]/memSta[4]; Real pAva_Vir = memSta[7]/memSta[6]; WriteLn("%Avail_Phys: "<< pAva_Phys); WriteLn("%Avail_PageFile: "<<pAva_PgF); WriteLn("%Avail_Virtual: "<< pAva_Vir); WriteLn("NObject: "+ IntText(NObject)); WriteLn("NCore: "+ IntText(NCore)); memSta << [[ pAva_Phys, pAva_PgF, pAva_Vir, NObject, NCore ]] }; Set For(0, 100, Set(Real cont) { WriteLn(Repeat(NL, 3) +"Iter: "+ IntText(cont) + Repeat(NL, 3)); Set memStt = MemoStat(?); //Real If(cont, MMS::Container::LoadFile("C:/Mat.Veh_BSR__1.0.oza")); Real If(cont, MMS::Container::LoadFile("C:/EEPTHE.Mod.BAM_Otr_Probit_BSR__3.1.oza")); Real If(cont, MMS::Container::RemoveEstimations(?)); Real Sleep(1); [[ cont ]] << memStt });
comment:3 Changed 14 years ago by
Sigue un nuevo código para devolver la versión de TOL. También he cambiado el número de veces que intenta cargar y descargar la estimación a 10. Actualmente, versión v2.0.1 b.0.48.alpha 2010-11-17 19:44:17 i686-win de TOL, no puede cargar la 9.
Set MemoStat(Real void)
{
WriteLn("Version: "+ Version);
Set memSta = MemoryStatus(?);
WriteLn("MemoryStatus: "<< memSta);
Real pAva_Phys = memSta[3]/memSta[2];
Real pAva_PgF = memSta[5]/memSta[4];
Real pAva_Vir = memSta[7]/memSta[6];
WriteLn("%Avail_Phys: "<< pAva_Phys);
WriteLn("%Avail_PageFile: "<<pAva_PgF);
WriteLn("%Avail_Virtual: "<< pAva_Vir);
WriteLn("NObject: "+ IntText(NObject));
WriteLn("NCore: "+ IntText(NCore));
memSta << pAva_Phys, pAva_PgF, pAva_Vir, NObject, NCore ?
};
Set For(0, 10, Set(Real cont)
{
WriteLn(Repeat(NL, 3) +"Iter: "+ IntText(cont) + Repeat(NL, 3));
Set memStt = MemoStat(?);
Real If(cont, MMS::Container::LoadFile("C:/1/EEPTHE.Mod.BAM_Otr_Probit_BSR__3.1.oza"));
Real If(cont, MMS::Container::RemoveEstimations(?));
Real Sleep(1);
Version, cont ? << memStt
});
comment:4 Changed 14 years ago by
Nuevo código haciendo Copy de NObjects y NCore:
Set MemoStat(Real void)
{
WriteLn("Version: "+ Version);
Set memSta = MemoryStatus(?);
WriteLn("MemoryStatus: "<< memSta);
Real pAva_Phys = memSta[3]/memSta[2];
Real pAva_PgF = memSta[5]/memSta[4];
Real pAva_Vir = memSta[7]/memSta[6];
WriteLn("%Avail_Phys: "<< pAva_Phys);
WriteLn("%Avail_PageFile: "<<pAva_PgF);
WriteLn("%Avail_Virtual: "<< pAva_Vir);
WriteLn("NObject: "+ IntText(NObject));
WriteLn("NCore: "+ IntText(NCore));
Real NObject_ = Copy(NObject);
Real NCore_ = Copy(NCore);
memSta << pAva_Phys, pAva_PgF, pAva_Vir, NObject_, NCore_ ?
};
Set For(0, 10, Set(Real cont)
{
WriteLn(Repeat(NL, 3) +"Iter: "+ IntText(cont) + Repeat(NL, 3));
Set memStt = MemoStat(?);
Real If(cont, MMS::Container::LoadFile("C:/1/EEPTHE.Mod.BAM_Otr_Probit_BSR__3.1.oza"));
Real If(cont, MMS::Container::RemoveEstimations(?));
Real Sleep(1);
Version, cont ? << memStt
});
comment:5 Changed 14 years ago by
Description: | modified (diff) |
---|---|
Status: | new → accepted |
Se ha localizado el problema en las clases de resultados.
Se trata de algo relacionado con la inicialización de la caché de los resultados.
No he podido adjuntar los archivos. Los he dejado de B:\entity\PrjBysForBysMMS\ticket\407