Entrar
¿Usuario nuevo? Regístrate
eagle1 · Eagle1 usuarios
? ¿Ya estás suscrito? Entrar en Yahoo!

Consejos de Yahoo! Grupos

¿Sabías que...?
Puedes buscar mensajes antiguos en un grupo.

Mensajes

  Mensajes Ayuda
Avanzado
MSGENVIR.prg usa un arreglo __aHCls que agrega clase y manejador y   Lista de mensajes  
Responder | Reenviar Mensaje #1477 de 1704 |
Re: [eagle1] RE: MSGENVIR.prg usa un arreglo __aHCls que agrega clase y manejador y no lo libera

Estimado manuel yo estoy usando la clase original  eagle1 version 5

y la clase MSTABLE  con datafields si consume recursos

como lo podras ver en ese ejemplo del  MyTable que publique

en el foro.

 

En otro proyecto antiguo si uso el eagle1 antiguo con modificaciones

En lo antiguo si tengo fuentes y el msgenvir.prg   es el que genera el

consumo no se en que funcion  por que cuando uso

la msquery sin datafields no consume  nada de recursos en forma

identica ocurre en el eagle1 version 5.0 que te compre a inicios de año.

 



 

Vladimir Zorrilla Llerena
Gerente de Desarrollo  CPS. 
Fono: 5347746 -  Nextel 835*4470
 
 
 
 
 
 


--- El mié, 11/6/08, loloexpo <messoft@...> escribió:
De: loloexpo <messoft@...>
Asunto: [eagle1] RE: MSGENVIR.prg usa un arreglo __aHCls que agrega clase y manejador y no lo libera
Para: eagle1@yahoogroups.com
Fecha: miércoles, 11 junio, 2008 6:07

Como sé que tu tienes muchas modificaciones en E1 mete esta funcion en
el MSGENVIR.prg :

//---------- --------- --------- --------- --------- --------- ---//
// Libera la memoria ocupada por el array __aHCls

procedure FreeDbClass( )

__aHCls := nil
hb_gcAll( .t. )

return

//---------- --------- --------- --------- --------- --------- ---//

Verás que la memoria es mínima :-(

--- En eagle1@yahoogroups. com, "loloexpo" <messoft@... > escribió:
>
> No Vladimir de eso no puede ser el array sólo contiene el nombre y el
> manejador y en el programa que lo usa comprueba que no sea redundante,
> pero aún así lo voy a comprobar...
>
>
> --- En eagle1@yahoogroups. com, "cps_envios" <cps_envios@ > escribió:
> >
> >
> > Estimado Manuel
> > Tengo el MSGENVIR.prg y analizandolo enecuentro
> >
> >
> >
> > Que la variable __aHCls se le agrega AAdd( __aHCls, { cClsName,
> > __nClassH } ) la clase
> > y su manejador pero jamas se liberan por eso creo que se consume la
> > memoria con
> > data fields
> >
> >
> > static __aHCls := {}
> >
> > #include "HbClass.ch"
> >
> > //---------- --------- --------- --------- --------- --------- ---
> > --------//
> > // Generador de clases dinamicas
> >
> > function MyGenClass( cClsName, FromClass )
> >
> > local n, __nClassH, __odB
> > local cFromClass := upper( FromClass:ClassName () )
> >
> > cClsName := "TMY" + Upper( if( empty( cClsName ), ;
> > PadL( len( __aHCls ), 7, "0" ), Alltrim(
> > cClsName ) ) )
> >
> > if ( n := AScan( __aHCls, { |aClass| aClass[ 1 ] ==
> > cClsName } ) ) == 0
> > _HB_CLASS cClsName
> > __oDb := HBClass():New( cClsName, { cFromClass } )
> > __oDb:Create( )
> > __nClassH := __oDb:hClass
> > AAdd( __aHCls, { cClsName, __nClassH } )
> > else
> > __nClassH := __aHCls[ n, 2 ]
> > endif
> >
> > return( __clsInst( __nClassH ) )
> >
> >
> >
> > Ahora si creo una funcion para eliminar del __aHCls los manejadores
> > de la clase una vez q termino de usarla
> >
> >
> >
> > /// eliminar de __aHCLS la clase generada
> >
> > Function CloseClass( cClsName )
> > Local n
> > if ( n := AScan( __aHCls, { |aClass| aClass[ 1 ] ==
> > cClsName } ) ) == 0
> > // ya se creo la clase
> > else
> >
> >
> > PREGUNTAS
> > 1.Esto elimina el manejador y la clase
> >
> > __aHCls[ n, 1 ]:=NIL
> >
> > __aHCls[ n, 2 ]:=NIL
> >
> >
> > 2.Es necesario eliminrlo del arreglo
> >
> > ADEL( __aHCls , n )
> >
> > 3.Es necesario temabien eliminar la variable q trae el objeto
> > cClsName:=NIL
> >
> > endif
> >
> > return( cClsName )
> >
>




Enviado desde Correo Yahoo!
La bandeja de entrada más inteligente.


Jue, 12 de Jun, 2008 12:23 am

cps_envios
Sin conexión Sin conexión
Enviar mensaje Enviar mensaje

Reenviar Mensaje #1477 de 1704 |
Desplegar mensajes Autor Ordenar por fecha

Estimado Manuel Tengo el MSGENVIR.prg y analizandolo enecuentro Que la variable __aHCls se le agrega AAdd( __aHCls, { cClsName, __nClassH } ) la clase y su...
cps_envios
Sin conexión Enviar mensaje
11 de Jun, 2008
10:34 pm

No Vladimir de eso no puede ser el array sólo contiene el nombre y el manejador y en el programa que lo usa comprueba que no sea redundante, pero aún así lo...
loloexpo
Sin conexión Enviar mensaje
11 de Jun, 2008
10:56 pm

Como sé que tu tienes muchas modificaciones en E1 mete esta funcion en el MSGENVIR.prg : ...
loloexpo
Sin conexión Enviar mensaje
11 de Jun, 2008
11:07 pm

Estimado manuel yo estoy usando la clase original &nbsp;eagle1 version 5 y la clase MSTABLE&nbsp; con datafields si consume recursos como lo podras ver en ese...
Vladimir Zorrilla
cps_envios
Sin conexión Enviar mensaje
12 de Jun, 2008
12:23 am

Estimado manuel yo estoy usando la clase original &nbsp;eagle1 version 5 y la clase MSTABLE&nbsp; con datafields si consume recursos como lo podras ver en ese...
Vladimir Zorrilla
cps_envios
Sin conexión Enviar mensaje
12 de Jun, 2008
12:23 am

Vladimir has quitado el Free() que hay dentro del bucle? Realmente no encuentro esa pérdida de recursos de cualquier manera cambia el método Open por este...
Manu
loloexpo
Sin conexión Enviar mensaje
13 de Jun, 2008
7:48 pm

Estimado Manuel  voy a probar lo q mes has enviado y te preciso que no le quite el metodo  free() te envie esta prueba, correla y veras como en el...
Vladimir Zorrilla
cps_envios
Sin conexión Enviar mensaje
13 de Jun, 2008
10:32 pm

Vladimir haz esto para ver si realmente consume: // Vladimir la creacion del objeto Table se hace una sola vez // Creo el objeto Tabla con DataField oTb :=...
Manu
loloexpo
Sin conexión Enviar mensaje
14 de Jun, 2008
10:13 pm

Tiene razon maestro   El error en el codigo que envie esta en que       oTb := oCon:MyTable( "TA1" ) debe estar fuera del bucle            For...
Vladimir Zorrilla
cps_envios
Sin conexión Enviar mensaje
16 de Jun, 2008
5:39 pm

Así es como se aprende :-) Voy a trabajar para mejorar el sistema y lo mas seguro es que en la próxima versión vayan los destructores reales que están...
loloexpo
Sin conexión Enviar mensaje
16 de Jun, 2008
7:19 pm
Avanzado

Copyright © 2009 Yahoo! Todos los derechos reservados.
Política de Privacidad Actualizada - Condiciones del servicio - Directrices - Ayuda