Question

Personne ne dispose d'aucune information sur les caractéristiques de performance du Protocole Tampons contre BFILS (binary JSON) ou versus JSON en général?

  • Taille de fil
  • La sérialisation de vitesse
  • La désérialisation de vitesse

Ceux-ci semblent comme bon protocoles binaires pour une utilisation sur HTTP.Je me demandais simplement qui serait le mieux dans le long terme, pour un environnement C#.

Voici quelques infos que j'ai lu sur BFILS et Protocol Buffers.

Était-ce utile?

La solution

L'épargne est un autre Protocole de Tampons-comme variante.

Il y a de bons repères à partir de la communauté de Java sur la sérialisation/désérialisation et la taille du fil de ces technologies: https://github.com/eishay/jvm-serializers/wiki

En général, JSON est légèrement plus grande taille de fil et légèrement pire DeSer, mais gagne en universalité et la capacité d'interpréter facilement sans la source IDL.Le dernier point est quelque chose que Apache Avro essaie de résoudre, et il bat à la fois en termes de performances.

Microsoft a publié un C# package NuGet Microsoft.Hadoop.Avro.

Autres conseils

Ce message compare des vitesses de sérialisation et tailles dans .NET, y compris JSON, BSON et XML.

http: //james.newtonking .com / archive / 2010/01/01 / net-sérialisation-performance comparison.aspx

Voici quelques repères récents montrant les performances de .NET Sérialiseurs populaires.

Le Ardentes moines repères montrent la performance de sérialisation simple POCO alors que la Northwind de points de référence montrer les résultats combinés de sérialisation une ligne dans toutes les tables de jeu de données Northwind de Microsoft.

entrer image description ici

Fondamentalement, les tampons de protocole ( protobuf-net ) est de l'ordre 7x plus rapide que le plus rapide bibliothèque de classes de base sérialiseur dans .NET (XML DataContractSerializer). Il est également plus petite que la concurrence est également 2,2x plus petit que Microsofts format de sérialisation plus compact (JsonDataContractSerializer).

Les serializers texte de ServiceStack sont les plus proches correspondant à la performance du protobuf-net binaire où son Json sérialiseur est seulement 2.58x plus lent que protobuf net.

tampons de protocole est conçu pour le fil:

  1. très petite taille du message - un aspect est très efficace représentation entière de taille variable
  2. .
  3. décodage très rapide -. Il est un protocole binaire
  4. protobuf génère super efficace C ++ pour coder et décoder les messages - Astuce: si vous encodez tous les entiers var-ou des éléments de taille statiques en ce qu'il va coder et décoder à la vitesse déterministe
  5. .
  6. Il offre un modèle de données très riche -. Coder efficacement des structures de données très complexes

JSON est juste texte et il doit être analysable . indice: codant pour une « milliards » int en elle prendrait tout à fait beaucoup de caractères: 12 milliards = Char (longue échelle), en binaire, il convient dans un uint32_t Maintenant que d'essayer de coder un double? ce serait bien pire FAR.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top