Tampons de protocole contre JSON ou BFILS
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
- Sérialisation vitesse
- Désérialisation 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.
- Certains prétendent(je pense que cela inclut un ancien protobuf auteur) qu'il est préférable d'utiliser un plus grand mais moins cher pour sérialiser format, puis de compresser la sortie avec une vitesse de compresseur standard.
- devblog.corditestudios.com/blog/2012/10/29/...
- Je ne pense pas que cela devrait être rouverte jusqu'à une certaine méthode de comparaison est proposé dans la question elle-même (sinon, c'est plutôt opinions discussion/trop large)
Vous devez vous connecter pour publier un commentaire.
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.
Ce post compare la sérialisation des vitesses et de tailles dans .NET, y compris JSON, BFILS et XML.
http://james.newtonking.com/archive/2010/01/01/net-serialization-performance-comparison.aspx
Voici quelques récentes repères montrant la performance de la populaire .NET Sérialiseurs.
La Gravure Moines repères montrent les performances de la sérialisation d'un simple POCO tandis que le global Les comptoirs de repères montrent les résultats combinés de sérialisation d'une ligne dans chaque table de Microsoft Comptoirs dataset.
Fondamentalement protocol buffers (protobuf-net) est d'environ 7x plus rapide que le plus rapide de la bibliothèque de classes de Base Sérialiseur .NET (XML DataContractSerializer). Il est aussi plus petit que la concurrence, comme c'est aussi 2.2 x plus petits que les directives de Microsoft le plus compact de format de sérialisation (JsonDataContractSerializer).
ServiceStack du Texte sérialiseurs sont le plus proche correspondant à la performance de l'binaire protobuf-net où son Sérialiseur Json est seulement 2.58 x plus lent que protobuf-net.
tampons de protocole est conçu pour le fil:
JSON est juste le texte et il doit être analysé. astuce: l'encodage des "milliards de dollars" int en elle prendrait beaucoup de personnages: Milliards = 12 char (long scale), en binaire, il s'inscrit dans une uint32_t Maintenant que diriez-vous d'essayer de coder un double ? ce serait bien pire.