jueves, 29 de enero de 2015

Harbour. The Lost of Memory. 1 PARTE

Desarrollando una nueva aplicación, que nos va a  servir de puente para accerder desde la web a nuestros datos, me encuentro que quiero hacer un test de estres a ver que tal se comporta.

La sorpresa es que el viendo el consumo de memoria este se dispara expotencialmente.

Para ello he preparado un test, para dar cual puede ser el motivo de porque Harbour no libera la memoria. Ver más abajo

El problema es del uso de la clase TXMLDocument.

Usando la librería minixml, el problema desaparece, o al menos no es tan acusado como la otra solución.

Para ello, he actualizado Harbour con git, lo he vuelto a construir;

Harbour 3.2.0dev (r1411121701)
Copyright (c) 1999-2014, http://harbour-project.org/

Harbour Build Info
---------------------------
Version: Harbour 3.2.0dev (r1411121701)
Compiler: Borland C++ 5.5.1 (32-bit)
Platform: Windows XP 5.1.2600 Service Pack 2
PCode version: 0.3
ChangeLog last entry: 2014-11-12 18:01 UTC+0100 Przemyslaw Czerpak (druzus/at/po
czta.onet.pl)
ChangeLog ID: 92755e4480f06f6ee0dcf31e5e8e378bcb855c1b
Built on: Nov 14 2014 16:36:00
Build options: (tracing) (Clipper 5.3b) (Clipper 5.x undoc)


Pongo las imágemes antes de hacer cualquier llamada, 2 MB de RAM;




Ahora vamos a ataca a hacerle cientos de llamadas, http://127.0.0.1/xml_doc , y he aquí la sorpresa, unos 81.7MB de RAM;