close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

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 Pedro Gea)

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 atorre

Keywords: Memoria Carga Destrucción Objetos Archivo added

No he podido adjuntar los archivos. Los he dejado de B:\entity\PrjBysForBysMMS\ticket\407

comment:2 Changed 14 years ago by irobles

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 atorre

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 atorre

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 Pedro Gea

Description: modified (diff)
Status: newaccepted

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 Pedro Gea

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;
}}}
Note: See TracTickets for help on using tickets.