Página 1 de 1

GPF en FastReport

Publicado: Lun Sep 09, 2024 7:32 pm
por Israel Solis
Hola XailerTeam

Tengo un proyecto en donde se generan MILES de PDF con FastReport dentro de un ciclo y hemos detectado que al llegar a un No. de reportes se genera un GPF:

GPF (Code = c0000005):
Access violation

TFASTREPORT:INITIALIZEC (0)
TFASTREPORT:INITIALIZE (309)
TFASTREPORT:CREATE (258)
TFORM1:BUTTON1CLICK (30)
TBUTTON:ONCLICK (0)
TBUTTON:CLICK (100)
(b)XCONTROL (156)
TBUTTON:COMMAND (0)
TSCROLLINGWINCONTROL:WMCOMMAND (275)
TFORM1:WMCOMMAND (969)
RUNFORM (0)
TAPPLICATION:RUN (292)
MAIN (15)



Pueden provocar este mismo error con este simple codigo...

Código: Seleccionar todo

METHOD Button1Click( oSender ) CLASS TForm1
   LOCAL n

   FOR n := 1 TO 1500
      ::cText := "Prueba # " + ToString(n)
      WITH OBJECT TFastReport():New(Self)
         :Create()
         :End()
      END WITH
   NEXT

RETURN Nil 
Brincara el GPF aprox. en la prueba 1,100 y hemos notado que el consumo de memoria va en aumento en cada ciclo e imaginamos que este consumo es lo que provoca el GPF

las pruebas se hicieron con Xailer 9.0.1 y con 9.1

SALUDOS

Re: GPF en FastReport

Publicado: Mar Sep 10, 2024 1:42 pm
por ignacio
Buenos días,

Pruebe con esta DLL que le adjunto:

https://www.xailer.com/files/frx.zip


Saludos
Imagen 596.png
Imagen 596.png (2.24 KiB) Visto 15678 veces

Re: GPF en FastReport

Publicado: Mar Sep 10, 2024 8:00 pm
por Israel Solis
Hemos hecho pruebas con el nuevo DLL y hasta el momento no ha presentado GPF

Hemos notado que la memoria sigue aumentando y no se recupera, esperemos que esto no represente un problema

En un ciclo de 3 mil interacciones, la memoria pasó de 11,296 K a 44,8700 K

Gracias Ignacio

Re: GPF en FastReport

Publicado: Mié Sep 11, 2024 9:00 am
por ignacio
Hola,

Evidentemente NO. Y en cualquier caso, el único que puede perder aceite es FastReport. Nosotros no, ya que sólo hacemos dos operaciones en C++:
1) Instanciar un objeto report
2) Destruirlo

Un saludo

Nota: Teníamos puesta una limitación de 1000 informes por ejecución. Se ha subido a 10.000. Por lo tanto consumimos 35 kb más.