Solución:
Si todo lo que está haciendo es transmitir texto, entonces sí, la diferencia entre los dos no es muy significativa. Pero considere intentar transmitir cosas como:
- Números: ¿utiliza una representación de cadena de un número o el binario? Especialmente para números grandes, el binario será más compacto.
- Estructuras de datos: ¿cómo se indica el comienzo y el final de un campo en un protocolo de texto? A veces, un protocolo binario con campos de longitud fija es más compacto.
Los protocolos de texto son mejores en términos de legibilidad, facilidad de reimplementación y facilidad de depuración. Los protocolos binarios son más compactos.
Sin embargo, puede comprimir su texto usando una biblioteca como LZO o Zlib, y esto es casi tan compacto como el binario (con muy poco impacto en el rendimiento para la compresión / descompresión).
Puedes leer más información sobre el tema aquí:
http://www.faqs.org/docs/artu/ch05s01.html
La cadena “hola” en sí misma no diferiría en tamaño. La diferencia de tamaño / rendimiento está en la información adicional que introduce la serialización (la serialización es cómo el programa representa los datos que se van a transferir para que puedan reconstruirse una vez que llegan al otro extremo de la tubería).
Por ejemplo, al serializar lo siguiente en .NET usando XML (uno de los métodos de serialización de texto):
string helloWorld = "Hello World!";
Es posible que obtenga algo como (sé que esto no es exacto):
<helloWorld type="String">Hello World!</helloWorld>
Mientras que la serialización binaria podría representar esos datos de forma nativa en binario sin todo el marcado adicional.