Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 14559|Répondre: 0

[Source] Sérialisation Java kryo/protobuf/protostuff ou comparaison des performances JSON

[Copié le lien]
Publié sur 15/07/2019 21:16:23 | | |
Pour la sérialisation d’un objet Java, je souhaite tester la différence entre l’utilisation de JSON et l’utilisation d’outils de sérialisation généraux en termes de performance temporelle et spatiale.

JSON choisit d’utiliser fastjson.

L’outil de sérialisation utilise Protostuff et Kyro. Pourquoi ne pas utiliser le protobuf ? Parce que je trouve que pour une classe Java avec des centaines de propriétés existantes, créer un nouveau fichier proto correspondant est un peu anti-humain. Protostuff est une version améliorée de Protobuf, qui permet de sérialiser directement un objet Java, en l’utilisant un peu comme Kyro, sans autant de processus intermédiaires que Protobuf. D’autres, comme Hession, Java avec sérialisation, etc., sont dites avoir des performances bien inférieures à celles de Kryo et Protobuf, donc je ne sais pas à quoi m’attendre.

Après un simple test, j’ai constaté que l’écart était assez évident, donc je n’ai pas ressenti la nécessité de faire une évaluation spécifique. Coupez un paragraphe du journal et envoyez-le, tout le monde le ressent.

le temps de coût est System.nanoTime() ; Les trois sont les configurations par défaut sans aucune configuration.
L’empreinte d’espace après sérialisation est légèrement inférieure à celle du protostuff, et les deux sont bien plus élevés que JSON. C’est facile à comprendre, après tout, les chaînes json sont lisibles, il ne faut pas forcer trop.
Le temps nécessaire pour la sérialisation et la désérialisation est meilleur que pour Kyro via FastJSON, et la différence est assez évidente.

En conclusion, s’il n’y a pas d’exigences extrêmement exigeantes pour l’espace, Protostuff pourrait être le meilleur choix. Protostuff a un avantage supplémentaire par rapport à Kyro, à savoir que si la classe Java ajoute des champs après la sérialisation et avant la désérialisation (ce qui est inévitable dans la vraie entreprise), Kyro sera inutile. Cependant, le protostuff peut être utilisé tant qu’il est ajouté à la fin du cours et utilise la série Sun JDK. Ainsi, si la sérialisation est utilisée dans des scénarios comme le cache, et que l’objet sérialisé doit être stocké longtemps, vous ne pouvez choisir que le protostuff.

Bien sûr, s’il y a besoin de lisibilité ou autre, vous ne pouvez utiliser que json.




Précédent:asp.net Personnaliser le nom de l’identifiant de session
Prochain:Comparaison des performances de Protobuf et JSON sous la plateforme .NET
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com