Estoy haciendo el dispose de objectRpt y SourceDataset abajo de todo.
Tendría que hacerlo de algo mas ?
Si podes pasame el código, yo encontré uno en Internet pero baja solo el
"working set" pero tanto los "private bytes" como el "virtual size" siguen
creciendo sin parar.
Te paso el código que tengo yo para ver si es el mismo o si tenes otro.
Gracias
Private Declare Auto Function SetProcessWorkingSetSize Lib
"kernel32.dll" (ByVal procHandle As IntPtr, ByVal min As Int32, ByVal max As
Int32) As Boolean
'Funcion de liberacion de memoria
Public Sub ClearMemory()
Try
Dim Mem As Process
Mem = Process.GetCurrentProcess()
SetProcessWorkingSetSize(Mem.Handle, -1, -1)
Catch ex As Exception
'Control de errores
End Try
End Sub
-----Mensaje original-----
De: Federico Lazarte [mailto:[email protected]]
Enviado el: Martes, 30 de Junio de 2009 15:45
Para: [email protected]
Asunto: [puntonet] Liberar memoria
Hola
No estas liberando los recursos una vez que los dejaste de usar.
Proba haciendo un dispose de los objetos que posean esta funcionalidad.
Si no te funciona, avisame, tengo un codigo que lleva el consumo de memoria
al minimo.
Saludos.
> From: [email protected]
> To: [email protected]
> Subject: [puntonet] Liberar memoria
> Date: Tue, 30 Jun 2009 09:35:06 -0300
>
>
> > Hola como están ?
> >
> > Les paso una pregunta.
> >
> >
> > Tengo una aplicación desarrollada en vb.net 2003 que es un servicio de
> > Windows.
> >
> > Esta aplicación corre este código.
> >
> > Imports CrystalDecisions.CrystalReports.Engine
> > Imports CrystalDecisions.Shared
> >
> > Dim objectRpt As New ReportDocument
> > objectRpt.Load(rptPath & "\" & ReportName)
> > objectRpt.SetDataSource(SourceDataset)
> > fileType = ".pdf"
> > fileName = fileName & fileType
> > objectRpt.ExportOptions.ExportDestinationType =
> > ExportDestinationType.DiskFile
> > objectRpt.ExportOptions.ExportFormatType =
> > ExportFormatType.PortableDocFormat
> > objectRpt.ExportToDisk(ExportFormatType.PortableDocFormat,
> > tempPath & "\" & fileName)
> >
> > objectRpt.Close()
> > objectRpt.Dispose()
> >
> > SourceDataset.Dispose()
> >
> > Cuando se ejecutan las líneas del load y el setdatasource sube el
consumo
> > de memoria.
> > Ese consumo sigue subiendo a medida que se va ejecutando el código y
nunca
> > lo llega a liberar.
> >
> > Cuando levanto un taskmanager veo que tanto los privatebytes y el
virtual
> > size crecen hasta un punto que se consumen toda la memoria del server.
> >
> > Tienen idea que me puede estar pasando o faltando ?
> >
> > Gracias
> > Saludos
> >
> >
> >
> AVISO: El presente mensaje y los archivos adjuntos que incluya pueden
> contener información confidencial de uso exclusivo del destinatario
> indicado. Cualquier uso en desacuerdo con su propósito, difusión o
> publicación, total o parcial, se encuentra prohibida. Si recibió este
> mensaje por error, rogamos reenviarlo al emisor y destruir las copias
> impresas o grabadas en su sistema. Las opiniones contenidas, son
> exclusivas de su autor y no representan necesariamente la opinión de
> OMINT S.A. de Servicios.
>
>
_____
¿Cuál de estas 16 personalidades es la tuya? ¡Descubrí quién sos
<http://www.descubrewindowslive.com/> realmente!
AVISO: El presente mensaje y los archivos adjuntos que incluya pueden
contener información confidencial de uso exclusivo del destinatario
indicado. Cualquier uso en desacuerdo con su propósito, difusión o
publicación, total o parcial, se encuentra prohibida. Si recibió este
mensaje por error, rogamos reenviarlo al emisor y destruir las copias
impresas o grabadas en su sistema. Las opiniones contenidas, son
exclusivas de su autor y no representan necesariamente la opinión de
OMINT S.A. de Servicios.