Nuevo FWH 16.10

Nuevo FWH 16.10

Postby Antonio Linares » Tue Nov 01, 2016 10:37 am

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FWH 16.10

Postby luisduque » Mon Nov 14, 2016 5:42 am

Maestro Antonio Saludos

Desde la versión 16.05 que salió la primera versión para el manejo de MySql la he probado y se han resuelto bastantes de los detalles que coloqué al principio, sin embargo lo mas preocupante es la perdida de memoria que se consume cada vez que se abre una tabla debido a que no se cierra y se aumenta hasta consumir toda la memoria, esto lo reporté desde esa versión y al actualizar a la version 16.10 continua el consumo de memoria. Simplemente al abrir una tabla, abrir otra y trabajar normalmente la memoria ram va en aumento y por supuesto eso hace que se vuelva muy lento el windows.

ejemplo

Code: Select all  Expand view  RUN


#include "fivewin.ch"
#include "xbrowse.ch"


function Main()

   local oWnd
 
    oConexion := mysql_Connect( { "localhost", "rovigo", "root", "1223", "3306" } )
    If oConexion == nil
       msginfo("error base de datos")
       return(.f.)
    EndIf

    oRcs := oConexion:Query("Select CodCli,NomCli From Clientes") //cada vez que se abre la tabla aumenta la memoria y cualquier tabla
    If oRcs==Nil
       msginfo("error tabla")
       Return(.f.)
    EndIf
 


No sirve
oRcs:Close()

Esto es sumamente importante porque el consumo de memoria es lo que debemos cuidar en cualquier sistema (aplicación).

Aprovechando quisiera saber si se puede pasar por alto el mensaje de dialogo cuando al abrir una base de datos no está
mysql_Connect()

En el caso de oCn:Query("Select * from tabla",.f.) con .f. no lo muestra se puede de alguna manera para una base de datos con mysql_Connect()

Gracias.
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql

Ing. MSc. Luis Duque
http://www.accasoft.net
luisduque
 
Posts: 133
Joined: Mon May 12, 2008 4:13 pm
Location: Venezuela

Re: Nuevo FWH 16.10

Postby Antonio Linares » Mon Nov 14, 2016 7:55 am

Luis,

Has probado con ?

oRcs:End()

y

oRc := nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FWH 16.10

Postby Antonio Linares » Mon Nov 14, 2016 7:58 am

Luis,

Aprovechando quisiera saber si se puede pasar por alto el mensaje de dialogo cuando al abrir una base de datos no está
mysql_Connect()

En el caso de oCn:Query("Select * from tabla",.f.) con .f. no lo muestra se puede de alguna manera para una base de datos con mysql_Connect()


Se lo he enviado traducido a Rao para saber su opinión
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FWH 16.10

Postby luisduque » Mon Nov 14, 2016 1:51 pm

Maestro Antonio

Antonio Linares wrote:Luis,

Has probado con ?

oRcs:End()

y

oRc := nil


Si lo he probado y cada vez que se hace un query va aumentando la memoria
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql

Ing. MSc. Luis Duque
http://www.accasoft.net
luisduque
 
Posts: 133
Joined: Mon May 12, 2008 4:13 pm
Location: Venezuela

Re: Nuevo FWH 16.10

Postby Antonio Linares » Mon Nov 14, 2016 6:21 pm

Luis,

Me ha enviado Rao este mensaje:

I modified the libs.

1) If the last parameter of mysql_connect(...) is .F., display of error is suppressed. The actual number of parameter is not important. It should be the last paramter.
He can read more about its usage in the whatsnew.txt of FWH16.11

2) In the example he posted, he specified 5th param as "3306". Port 3306 is default and better it is omitted. If he still wants to specify the port, it should be NUMERIC not Charactger.

MEMORY:
When a RowSet is closed, the freed memory is not surrendered by Harbour to the OS, but still kept as free memory by Harbour. When another recordset is opened, the same memory heap is used by Harbour
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FWH 16.10

Postby luisduque » Mon Nov 14, 2016 11:29 pm

Maestro Antonio

Lo del puerto numérico eso lo se al hacer un copiar pegar quedó, y ese no es el punto a tratar sino que quiero que al realizar

oConexion := mysql_Connect( { "localhost", "rovigo", "root", "1223", 3306 } )

si no consigue la base de datos o no hay conexión sale un mensaje de alerta y eso es algo que quiero evitar, debido a que unos de los programas corre en segundo plano y no necesito mensajes.

Lo intenté colocando en el parámetro 6 después del 3306 un .f. un 0 un 1 y nada ejemplo
oConexion := mysql_Connect( { "localhost", "rovigo", "root", "1223", 3306,.f. } )
oConexion := mysql_Connect( { "localhost", "rovigo", "root", "1223", 3306,0 } )
oConexion := mysql_Connect( { "localhost", "rovigo", "root", "1223", 3306,1 } )


por ejemplo con

oRcs := oConexion:Query("Select CodCli,NomCli From Clientes") al colocarle .f. no sale el mensaje cuando no consigue la tabla, ejemplo

oRcs := oConexion:Query("Select CodCli,NomCli From Clientes",.f.)

la idea es saber si se puede con mysql_Connect()

Lo otro que es mas importante es la perdida de memoria RAM cada vez que se abre un oConexion:Query() y eso es demasiado preocupante cuando se usa la aplicación todo el dia,

Con ADO no hay problema.

la idea es verificar que errores uno ve para replicarlo y tratar de solucionar

Muchas Gracias Maestro
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql

Ing. MSc. Luis Duque
http://www.accasoft.net
luisduque
 
Posts: 133
Joined: Mon May 12, 2008 4:13 pm
Location: Venezuela

Re: Nuevo FWH 16.10

Postby Antonio Linares » Tue Nov 15, 2016 9:39 am

Luis,

Lo estamos revisando para ver si lo solucionamos cuanto antes, gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FWH 16.10

Postby Antonio Linares » Tue Nov 15, 2016 10:00 am

Luis,

Si minimizas la aplicación y pasa a segundo plano, puedes comprobar si libera la memoria ? gracias

http://www.techrepublic.com/blog/windows-and-office/investigate-memory-usage-with-windows-7-resource-monitor/

Standby
The Standby list, which is shown in blue, contains pages that have been removed from process working sets but are still linked to their respective working sets. As such, Standby list is essentially a cache. However, memory pages in the Standby list are prioritized in a range of 0-7, with 7 being the highest. Essentially, a page related to a high-priority process will receive a high-priority level in the Standby list.

For example, processes that are Shareable will be a high priority and pages associated with these Shareable processes will have the highest priority in the Standby list.

Now, if a process needs a page that is associated with the process and that page is now in the Standby list, the memory manager immediately returns the page to that process' working set. However, all pages on the Standby list are available for memory allocation requests from any process. When a process requests additional memory and there is not enough memory in the Free list, the memory manager checks the page's priority and will take a page with a low priority from the Standby list, initialize it, and allocate it to that process.


https://blogs.technet.microsoft.com/askperf/2010/08/13/introduction-to-the-new-sysinternals-tool-rammap/

Standby: Pages of physical ram not actively being used. These are still left in physical ram but will be repurposed first by the memory manager (either returned to the active list or zeroed out and reused) if something needs physical ram for active pages. Standby pages are essentially cache – it’s better to have infrequently used data kept in RAM “just in case” than pushing it out to disk when the memory isn’t needed for anything else.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FWH 16.10

Postby luisduque » Tue Nov 15, 2016 2:56 pm

Maestro Antonio

Estoy trabajando en paralelo probando ADO(Que tiene años trabajando bien ) y la conexion directa a mysql(lo nuevo)
Para estar seguro si lo puedo instalar a clientes, y ya muchas cosas que anteriormente comenté están solucionadas sin embargo lo que falta que es lo mas importante
es que cada vez que se hace un query la memoria ram aumenta, lo que no sucede con ADO,

Lo del mensaje de Alerta es porque esos mensajes deben depender de uno y por eso seria bueno que mysql_conect() no saque mensajes sino que de el código de error y uno verá si lo saca el mensaje o no depende de la ocasión.

La idea es mejorar y que quede bien la nueva clase para el manejo de mysql

Muchas gracias
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql

Ing. MSc. Luis Duque
http://www.accasoft.net
luisduque
 
Posts: 133
Joined: Mon May 12, 2008 4:13 pm
Location: Venezuela

Re: Nuevo FWH 16.10

Postby Antonio Linares » Tue Nov 15, 2016 7:05 pm

Luis,

Seguimos investigando para descubrir que pasa

Muchas gracias por tu información
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FWH 16.10

Postby Antonio Linares » Tue Nov 15, 2016 9:04 pm

Luis,

Podrias probar a llamar a hb_gcAll() después de terminar de usar el query y ver si asi se estabiliza el consumo de memoria

viewtopic.php?p=195525#p195525
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FWH 16.10 (Solucionado)

Postby luisduque » Tue Nov 15, 2016 9:39 pm

Maestro Antonio

Siempre uso
hb_gcAll( .t. )
SysRefresh()

No se me había ocurrido usarlo para los query y funciona perfecto.

Ya con esto soluciono el problema de recursos (consumo de memoria) que es lo mas importante

Ahora no olvides si se puede quitar el mensaje de alerta que da mysql_connect() y seria excelente que diera el mensaje de error si no es mucho pedir


Muchas Gracias
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql

Ing. MSc. Luis Duque
http://www.accasoft.net
luisduque
 
Posts: 133
Joined: Mon May 12, 2008 4:13 pm
Location: Venezuela

Re: Nuevo FWH 16.10

Postby Antonio Linares » Tue Nov 15, 2016 9:56 pm

Luis,

Me alegro de que hayamos solucionado el problema de la memoria.

He comentado con Rao el quitar ese mensaje.

gracias por tu ayuda :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FWH 16.10

Postby jesusdelamora » Wed Feb 15, 2017 3:57 am

Master antonio

En la versión 16.10 o mas reciente, puedo usar mysql embebido y conexión remota a una base de datos mysql ?

Gracias por tu ayuda
jesusdelamora
 
Posts: 20
Joined: Fri Apr 25, 2014 3:05 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 110 guests