que tienen un muy pequeño servicio WCF alojado en una aplicación de consola.WCF Memoria Servicio Leaks
[ServiceContract]
public interface IService1
{
[OperationContract]
void DoService();
}
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall)]
public class Service1 : IService1
{
public void DoService()
{
}
}
y su ser llamado como
using (ServiceReference1.Service1Client client = new ServiceReference1.Service1Client())
{
client.DoService(new DoServiceRequest());
client.Close();
}
Por favor, recuerde que el servicio se publica en basicHttpBindings.
Problema
Ahora, cuando he realizado anteriormente código de cliente en un bucle de 1000 me encontré gran diferencia entre "Todos los bytes del montón" y "Bytes privados" contadores de rendimiento (i utilizado .net perfilador de memoria). Después de la investigación me encontré con algunos de los objetos no están bien dispuestos siguientes son la lista de los objetos (se encontraron 1.000 instancia no vendida -> es igual a las llamadas del cliente)
(espacio de nombres para todos ellos es System.ServiceModel. canales)
HttpOutput.ListenerResponseHttpOutput.ListenerResponseOutputStream
BodyWriterMessage
BufferedMessage
HttpRequestContext.ListenerHttpContext.ListenerContextHttpInput.ListenerContextInputStream
HttpRequestContext.ListenerHttpContext
Preguntas ¿Por qué tenemos gran cantidad de objetos no vendida y cómo controlarlos.
por favor ayuda
Parece una pérdida de biblioteca del sistema para mí. El código del cliente (como en el servicio escrito por el usuario) no toca esos búferes y flujos, y parece que WCF no los descarta. –
Mabushar: ¿Has tenido algo de suerte con esto? Parece que estoy teniendo un problema similar. – bugfixr
@bugfixr lo siento hermano, he notado tu mensaje hoy, no recuerdo si fui capaz de deshacerme de ellos, pero una cosa que recuerdo fue que cambié al framework 4.0 del framework 3.5, me ayudó parcial o totalmente, no lo hice recuerda, pero me ayudó de alguna manera. lo siento por la respuesta tardía. –