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

Vista: 14559|Resposta: 0

[Fonte] Serialização Java kryo/protobuf/protostuff ou comparação de desempenho JSON

[Copiar link]
Publicado em 15/07/2019 21:16:23 | | |
Para a serialização de um objeto Java, gostaria de testar a diferença entre usar JSON e usar ferramentas gerais de serialização em termos de desempenho temporal e espacial.

JSON escolhe usar o fastjson.

A ferramenta de serialização usa Protostuff e Kyro. Por que não usar protobuf? Porque sinto que, para uma classe Java com centenas de propriedades existentes, criar um novo arquivo proto correspondente é um pouco anti-humano. Protostuff é uma versão aprimorada do Protobuf, que permite serializar um Objeto Java diretamente, usando-o de forma semelhante ao Kyro, mas sem tantos processos intermediários quanto o Protobuf. Outros, como Hession, Java com serialização, etc., dizem que têm desempenho muito pior que Kryo e Protobuf, então não sei o que esperar.

Após um teste simples, percebi que a diferença era bastante óbvia, então senti que não havia necessidade de fazer uma avaliação específica. Corte um parágrafo do registro e envie, todo mundo sinta.

custo é System.nanoTime(); As três são as configurações padrão, sem nenhuma configuração.
A área de espaço após a serialização é um pouco menor que a do protostuff, e ambos são muito maiores que o do JSON. Isso é fácil de entender, afinal, as strings json são legíveis, não force demais.
O tempo necessário para serialização e desserialização é melhor do que o Kyro sobre FastJSON, e a diferença é bastante óbvia.

Então, em conclusão, se não houver requisitos extremamente exigentes para espaço, o Protostuff pode ser a melhor escolha. Protostuff tem uma vantagem adicional sobre o Kyro, ou seja, se a classe Java adicionar campos após a serialização e antes da desserialização (o que é inevitável em negócios reais), o Kyro será inútil. No entanto, protostuff pode ser usado desde que seja adicionado ao final da aula e use a série Sun JDK. Portanto, se a serialização for usada em cenários como cache, e o objeto serializado precisar ser armazenado por muito tempo, você só pode escolher protostuff.

Claro, se houver necessidade de legibilidade ou algo assim, você só pode usar json.




Anterior:asp.net Personalizar o nome do id da sessão
Próximo:Comparação do desempenho do Protobuf e JSON na plataforma .NET
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