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

Vue: 4002|Répondre: 2

[Source] ASP.NET Core (24) est basé sur Refit et communication haute performance MemoryPack

[Copié le lien]
Publié le 30-09-2023 à 22:10:36 | | | |
Exigences : D’après l’architecture de microservices utilisée par ASP.NET Core, certains services sont des infrastructures (services de base) qui doivent communiquer fréquemment avec un certain service, et les hautes performances ainsi que la faible latence sont particulièrement importantes.

L’utilisation du protocole MemoryPack pour sérialiser les données présente deux avantages par rapport à l’utilisation du JSON : une sérialisation rapide et un faible transfert de contenu, ce qui améliore les performances.

Révision:

Benchmarks de performance MessagePack et protobuf-net
https://www.itsvse.com/thread-10655-1-1.html

.net/c# Comparaison de sérialisation des tampons de protocole Xml, Json, Hessian
https://www.itsvse.com/thread-4675-1-1.html

L’interface a été appelée 200 000 fois à l’aide de MemoryPack et JSON, et les résultats étaient les suivants :



Le MemoryPack prend 29 895 millisecondes
Le JSON prend 34 283 millisecondes

Puisque je suisTest local, l’écart n’est pas très visibleLorsque les appels inter-hôtes, les champs augmentent et le volume de données augmentent, je pense que l’écart sera plus évident.

ASP.NET configuration Core prend en charge le protocole MemoryPack

Puisque l’objet est sérialisé via le protocole MemoryPack puis envoyé via le protocole HTTP, ASP.NET Core doit prendre en charge le protocole MemoryPack, et qu’une nouvelle classe MemoryPackInputFormatter est créée, le code est le suivant :

Ensuite, MvcOptions ajoute la prise en charge du protocole MemoryPack, avec le code suivant :

Définissez un objet de transport avec le code UserProfile suivant :


La méthode contrôleur ajoute une interface avec le code suivant :

La console utilise Refit pour envoyer des requêtes HTTP

Une application console utilise MemoryPack pour sérialiser les objets et envoyer des requêtes HTTP aux interfaces, avec le code suivant :

Le test est le suivant :



Lors de l’utilisation de MemoryPackSerializer pour sérialiser un objet, le code suivant donnera une erreur :


System.Object n’est pas enregistré auprès de ce fournisseur

Il devrait s’agir d’un bug de MemoryPack, modifié comme suit :

(Fin)





Précédent:Saccades de l’Explorateur de fichiers Windows 11, solution bloquée
Prochain:.NET/C# nouveau type de registre de fonctionnalité
 Propriétaire| Publié le 1-10-2023 à 08:06:35 |
System.Object n’est pas enregistré auprès de ce fournisseur

Ce problème concerne Refit comme suit :




 Propriétaire| Publié le 31-12-2024 à 21:47:28 |
Téléchargez le fichier avec Refit pour obtenir un flux de réponse (Note :L’ensemble du flux de fichiers téléchargé n’est pas chargé en mémoire



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