Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

380
Vistas
¿Debe RestClient ser único o nuevo para cada solicitud?

ASP.Net HttpClient es desechable, y muchos artículos dicen que debe usar el patrón singleton para usarlo debido al rendimiento. Pero cuando veo el RestClient , no se puede desechar, y en la página de uso recomendado, la muestra mostrará el RestClient new cada vez. ¿Debo usar el patrón singleton para RestClient o debo new cada vez? Si lo new cada vez, ¿habrá algún problema de rendimiento?

RestSharp GitHub

Algunas referencias:

¿Se deben eliminar HttpClient y HttpClientHandler?

ESTÁS UTILIZANDO MAL HTTPCLIENT Y ESTÁS DESESTABILIZANDO TU SOFTWARE

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

¿Debo usar el patrón singleton para RestClient o debo actualizarlo cada vez, si lo actualizo cada vez, habrá algún problema de rendimiento?

La forma recomendada de usar RestSharp es crear una nueva instancia por solicitud.

Se diferencia del enfoque Singleton recomendado para HttpClient . Y la razón es que, bajo el capó RestSharp usa HttpWebRequest para la interacción HTTP, no HttpClient . Es por eso que el modelo de uso difiere.

Si lo creo cada vez, ¿tengo problemas de rendimiento como HttpClient?

La razón principal por la que no debe crear una nueva instancia de HttpClient para cada solicitud no es una consideración de rendimiento. El tiempo dedicado a la creación e inicialización tomará una pequeña fracción del tiempo dedicado a la siguiente llamada de red. La razón principal para usar la instancia singleton de HttpClient es la siguiente :

HttpClient está diseñado para ser instanciado una vez y reutilizado a lo largo de la vida de una aplicación. Crear instancias de una clase HttpClient para cada solicitud agotará la cantidad de sockets disponibles bajo cargas pesadas. Esto dará como resultado errores de SocketException.

RestSharp no usa el grupo de conexiones como HttpClient y no deja sockets abiertos después del uso. Por eso es seguro (y recomendado) crear una nueva instancia de RestClient por solicitud.

¿Obtendrá alguna mejora en el rendimiento si utiliza la instancia de reutilización de RestClient ? Bueno, ahorrará tiempo para la creación del objeto y su inicialización. Sin embargo, este tiempo está muy cerca de 0 y, además, es una pequeña fracción del tiempo empleado para seguir la llamada de la red. No reutiliza otros objetos .NET como List<T> debido a consideraciones de rendimiento, ¿verdad? Debe hacer lo mismo para RestClient . Simplemente se desarrolló de una manera que implica tal escenario de uso.

over 4 years ago · Santiago Trujillo Denunciar

0

A partir de la versión v107 , debe crear solo una instancia. Esta versión usa HttpClient internamente.

No cree una instancia de RestClient para cada llamada HTTP. RestSharp crea una nueva instancia de HttpClient internamente, y obtendrá muchas conexiones colgantes y eventualmente agotará el grupo de conexiones.

Si usa un contenedor de inyección de dependencia, registre su cliente de API como singleton.

Si se pregunta por qué es así, puede ver la explicación aquí .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda