Opened 14 years ago
Last modified 14 years ago
#407 closed defect
Memoria de TOL creando y destruyendo objetos MMS desde archivo — at Version 6
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 = memSta["AvailPhys"]/memSta["TotalPhys"]; Real pAva_PgF = memSta["AvailPageFile"]/memSta["TotalPageFile"]; Real pAva_Vir = memSta["AvailVirtual"]/memSta["TotalVirtual"]; 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 (6)
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.
comment:6 Changed 14 years ago by
Description: | modified (diff) |
---|
NOTA:
Por estética y para facilitar la lectura se recomienda encerrar entra triples llaves el código TOL de modo que sea fácil distinguirlo del texto. Algo así:
... véase el siguiente código: {{{ // Esto es código TOL Real a = 1; }}}
No he podido adjuntar los archivos. Los he dejado de B:\entity\PrjBysForBysMMS\ticket\407