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

139
Vistas
¿Por qué la mayoría de los serializadores usan una secuencia en lugar de una matriz de bytes?

Actualmente estoy trabajando en un servidor de socket y me preguntaba ¿Por qué a los serializadores les gusta

  • XmlSerializer
  • Formateador binario
  • Protobuf-net
  • DataContractSerializerDataContractSerializer

¿Todos requieren unStream en lugar de una matriz de bytes?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Significa que puede transmitir a destinos arbitrarios en lugar de solo a la memoria.

Si desea escribir algo en un archivo, ¿por qué querría crear primero una copia completa en la memoria? En algunos casos, eso podría hacer que use mucha memoria adicional, lo que posiblemente provoque una falla.

Si desea crear una matriz de bytes, simplemente use un MemoryStream :

 var memoryStream = new MemoryStream(); serializer.Write(foo, memoryStream); // Or whatever you're using var bytes = memoryStream.ToArray();

Entonces, con una abstracción de "usa flujos", puede trabajar fácilmente con la memoria, pero si la abstracción es "usa una matriz de bytes", se ve obligado a trabajar con la memoria incluso si no quiere.

about 4 years ago · Santiago Trujillo Denunciar

0

Puede hacer fácilmente una transmisión sobre una matriz de bytes... pero una matriz de bytes está inherentemente restringida en tamaño, donde una transmisión es abierta... tan grande como lo necesite. Algunas serializaciones pueden ser bastante enormes.

Editar : Además, si necesito implementar algún tipo de serialización, quiero hacerlo para la abstracción más básica y evitar tener que hacerlo en múltiples abstracciones. Stream sería mi elección, ya que hay implementaciones de flujo sobre muchas cosas: memoria, disco, red, etc. Como implementador, los obtengo "gratis".

about 4 years ago · Santiago Trujillo Denunciar

0

si usa una byte array/ buffer , está trabajando temporalmente en la memoria y tiene un tamaño limitado

Si bien una transmisión es algo que le permite almacenar cosas en el disco, enviarlas a otras computadoras, como Internet, puerto serie, etc., las transmisiones a menudo usan búferes para optimizar la velocidad de transmisión.

Por lo tanto, la transmisión será útil si se trata de un archivo grande.

about 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