Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 26039|Resposta: 2

[Fonte] .net/c# Comparação de serialização de XML, Json, Hessian, Protocol Buffers

[Copiar link]
Publicado em 13/04/2018 13:23:31 | | | |
Breve introdução

Este blog compara principalmente o desempenho de serialização e desserialização de Xml, Json, Hessian e Protocol Buffers, deixando de lado os conceitos básicos de XML e Json.
Hessian: Hessian é uma ferramenta remota onhttp leve que oferece funcionalidade de RMI usando o protocolo binário RPC e capacidades de serialização integradas.
Protocol Buffers: Um formato para troca de dados do Google, que é independente da linguagem e, por ser um formato binário, é muito mais rápido do que usar XML para troca de dados, podendo ser usado para comunicação de dados entre aplicações distribuídas ou troca de dados em ambientes heterogêneos. Como um formato eficiente e compatível de transmissão binária de dados, pode ser usado em muitos campos, como transmissão em rede, arquivos de configuração, armazenamento de dados, etc. O Google oferece implementações em Java, C++, Python, e agora existem implementações de linguagens como C# na Internet.

Serialização e desserialização

XML: Use o XmlSerializer que vem com o .Net.
Json: Ele usa ServiceStack.Text, que é mais eficiente que o Newtonsoft.Json, mas o mais rápido deve ser fastJSON.net.
Hessian: Usando a biblioteca HessianCSharp, baixada do nuget.
Buffers de protocolo: Usando protobuf-net, baixado do nuget.
A seguir estão as entidades utilizadas no teste.

O processador i7HQ de 2,6Hz usado na máquina de teste.
Aqui estão os resultados do teste
Serialização


Desserialização


Comprimento do byte após serialização


Vamos falar primeiro sobre serialização, aqui ela é testada com 100 vezes, 1000 vezes, 10000 vezes e 100000 vezes, respectivamente, a ordenada é o tempo de completão, a unidade é milissegundos, você pode ver que ao testar dentro de 10.000 vezes, o consumo de tempo de 4 tipos de serialização é muito pequeno, todas dentro de 200 milissegundos, após 10.000 vezes, até 100.000 vezes, todas começam a crescer, o pior é Xml, o melhor é Protocol Buffers, mas quando está dentro de 10.000 vezes, O Hessian é melhor que os Protocol Buffers.
Não há muita diferença em 10.000 desserializações, mas com 10.000 vezes, já podemos ver que o Hessian consome mais tempo, e com 100.000 vezes, o Hessian supera diretamente o Xml, o que me faz sempre pensar que há um problema com meu código, e o melhor desempenho ainda é o Protocol Buffers.
O comprimento de byte serializado é compreensivelmente o maior em Xml, porque o arquivo contém muitas etiquetas finais (),</Name> e Protocol Buffers ainda é o melhor.

Com base no gráfico acima, podemos concluir quase rapidamente que o Protocol Buffers é o melhor, mas acho que ainda precisamos avaliá-lo de forma abrangente a partir dos seguintes aspectos:
1. Legibilidade: XML e Json são ambos texto após a serialização, e a legibilidade é muito boa; por exemplo, se houver um erro no meio, podemos facilmente visualizar os dados trocados e até simular os dados para testar; Tanto os buffers Hessian quanto os Protocol Buffers são binários, e o conteúdo fica ilegível após a serialização, o que terá certo impacto na solução de problemas do sistema.
2. Versatilidade: XML e JSON já são formatos antigos de troca de dados, e esses são os dois formatos para troca de dados entre sistemas gerais. Tanto os buffers Hessiano quanto o de Protocolo são relativamente impopulares e são menos utilizados.
3. Conveniência: O Hessian é, na verdade, um framework completo de RPC, define a interface no lado do servidor e implementa a interface, copia a interface para o cliente. Após um pouco de programação, podemos chamar o lado do servidor como se fosse chamando um método local, o que não está disponível nas outras três ferramentas, e o desempenho não é ruim.





Anterior:O Windows instala o programa de serviço .net/c#
Próximo:Solução StreamReader para caracteres distorsionados ao ler arquivos
 Senhorio| Publicado em 31/08/2023 20:57:23 |
Benchmarks de desempenho MessagePack e protobuf-net
https://www.itsvse.com/thread-10655-1-1.html
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com