/ / MSMQ RAM Usage, cómo liberar memoria después de procesar sin reiniciar el servicio de Windows - .net

Uso de la RAM de MSMQ, cómo liberar memoria después de procesar sin reiniciar el servicio de Windows - .net

Tengo un servicio de Windows que procesa archivos xml. Los detalles de los archivos a procesar se agregan a MSMQ. La aplicación recupera los elementos en MSMQ utilizando subprocesos y luego procesa estos archivos. Cuando proceso más de cien archivos obtengo una "Excepción de memoria insuficiente". El uso de RAM es alto, lo que significa que la memoria en la RAM no se libera incluso después de procesar los archivos. Puedo continuar el procesamiento solo después de reiniciar el servicio. ¿Cómo puedo liberar memoria sin restringir el servicio?

Gracias

Respuestas

1 para la respuesta № 1

OptimizandoLa memoria de la aplicación NET puede ser un reto. Lo primero es saber que en la mayoría de los casos el enorme consumo de memoria se debe a la mala gestión de las relaciones de objeto. Sin embargo, hay algunos casos en los que el consumo puede deberse al uso incorrecto de la infraestructura .NET.

Considere los siguientes artículos:

Entonces lo que puedes hacer es cambiar el apartamento.Estado o llamar al recolector de basura explícitamente. Si ninguno de estos no ayuda, lo único que puede hacer es inspeccionar las relaciones entre el proyecto y lo más probable es que descubra alguna colección que no se mantiene adecuadamente.


0 para la respuesta № 2

Tenemos una aplicación que utiliza MSMQ, informó el clienteel uso de memoria es demasiado alto, termina nuestra aplicación no pierde la memoria, pero el uso de MSMQ. Es por diseño que MSMQ usa mucha memoria para acelerar. Finalmente, terminamos con la forma de reducir el tráfico de MSMQ.