#407 closed defect (fixed)
Memoria de TOL creando y destruyendo objetos MMS desde archivo
| 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 (9)
comment:1 Changed 15 years ago by
| Keywords: | Memoria Carga Destrucción Objetos Archivo added |
|---|
comment:2 Changed 15 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 15 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 15 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 15 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 15 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;
}}}
comment:7 Changed 15 years ago by
comment:8 Changed 15 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | accepted → closed |
No se consigue volver a reproducir el problema anterior, para diagnosticar su procedencia, probablemente esté relacionado con #545 u otros problemas similares.
![(please configure the [header_logo] section in trac.ini)](/mms/chrome/site/logomms.png)
No he podido adjuntar los archivos. Los he dejado de B:\entity\PrjBysForBysMMS\ticket\407