国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

MessagePack 和System.Text.Json 序列化和反序列化性能及對比分析

瀏覽:141日期:2022-06-09 08:35:36

本博客將測試MessagePack 和System.Text.Json 序列化和反序列化性能
項目文件:

Program.cs代碼:

using BenchmarkDotNet.Running;using Demo;var summary = BenchmarkRunner.Run<SerializeTest>();

SerializeTest.cs代碼:

using BenchmarkDotNet.Attributes;using MessagePack;using System.Text.Json;namespace Demo{    [MemoryDiagnoser, RankColumn, MaxColumn,MinColumn]    public class SerializeTest    {public List<TestModule> TestDatas = new();public byte[] Pack;public byte[] Json;public SerializeTest(){    for (int i = 0; i < 3000; i++)    {var d = new TestModule(Guid.NewGuid(), Guid.NewGuid().ToString("N") + i);d.i = i;TestDatas.Add(d);    }    Pack = MessagePackSerializer.Serialize(TestDatas, MessagePack.Resolvers.ContractlessStandardResolver.Options);    Json = JsonSerializer.SerializeToUtf8Bytes(TestDatas);}[Benchmark]public byte[] GetMessagePackByte(){    return MessagePackSerializer.Serialize(TestDatas, MessagePack.Resolvers.ContractlessStandardResolver.Options);}[Benchmark]public byte[] TextJsonByte(){    return JsonSerializer.SerializeToUtf8Bytes(TestDatas);}[Benchmark]public List<TestModule> GetMessagePack(){    return MessagePackSerializer.Deserialize<List<TestModule>>(Pack, MessagePack.Resolvers.ContractlessStandardResolver.Options);}[Benchmark]public List<TestModule>? TextJson(){    return JsonSerializer.Deserialize<List<TestModule>>(Json);}public class TestModule{    public TestModule(Guid id, string? value)    {Id = id;Value = value;    }    public Guid Id { get; set; }    public int i { get; set; }    public string? Value { get; set; }    public string MyProperty { get; set; } = "MyProperty";    public string MyProperty1 { get; set; } = "MyProperty";    public string MyProperty2 { get; set; } = "MyProperty";    public string MyProperty3 { get; set; } = "MyProperty";    public string MyProperty4 { get; set; } = "MyProperty";    public string MyProperty5 { get; set; } = "MyProperty";    public string MyProperty6 { get; set; } = "MyProperty";    public string MyProperty7 { get; set; } = "MyProperty";    public string MyProperty8 { get; set; } = "MyProperty";    public string MyProperty9 { get; set; } = "MyProperty";    public string MyProperty10 { get; set; } = "MyProperty";}    }}

然后我們將使用基準測試開始我們的性能測試:

然后測試結(jié)束:

我們看到我們的MessagePack的性能在序列化Byte[]的表現(xiàn)對比TextJson上不光是性能比TextJson的更快,內(nèi)存占用也更小
然后是反序列化對象 MessagePack對比TextJson 性能和內(nèi)存占用都更強
在使用MessagePack的前提上我配置了MessagePack的配置 MessagePack.Resolvers.ContractlessStandardResolver.Options
如果不加 MessagePack.Resolvers.ContractlessStandardResolver.Options 性能可能并不比Json更快更好 啟用了配置以后模型不需要添加特性 并且性能更快
在需要更快性能的場景MessagePack更適合 并且傳輸?shù)捏w積更小,所以非常推薦在需要性能的場景下使用MessagePack

順便我還測試過嵌套序列化和反序列化MessagePack的表現(xiàn)還是比Json的更強

到此這篇關(guān)于MessagePack 和System.Text.Json 序列化和反序列化性能及對比分析的文章就介紹到這了,更多相關(guān)MessagePack 和System.Text.Json 序列化和反序列化內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標簽: ASP.NET
主站蜘蛛池模板: 日本一区二区三区国产 | 中文字幕有码在线视频 | 欧美视频一区二区三区在线观看 | 欧美成人久久久免费播放 | 国产中文字幕免费观看 | 国产精品国产三级国产an | 手机在线观看精品国产片 | 国产一区二区影视 | 欧美成a人片在线观看久 | 手机看片免费基地 | 日韩视频在线观看 | 国产精品久久久久国产精品 | 久久99中文字幕 | 国产成人综合91精品 | 精品免费久久 | 国产美女做爰免费视频网址 | 国产高清第一页 | 亚洲欧美一区二区三区久本道 | 99精品免费 | 亚州精品视频 | 亚洲伊人成人 | 久久精品久久精品国产大片 | 午夜刺激爽爽视频免费观看 | 免费特黄级夫费生活片 | 盈盈性影院 | 精品久久久久久中文字幕网 | 一级做a爰片久久毛片潮喷 一级做a爰片久久毛片美女 | 成人亚洲欧美日韩中文字幕 | 国产在线精品一区二区夜色 | 欧美视频一区二区专区 | 久久国内视频 | 国产成人久久777777 | 国产精品色综合久久 | 国产一线视频在线观看高清 | 国产妇乱子伦视频免费 | 国产成人教育视频在线观看 | 日日摸天天摸狠狠摸视频 | 精品视频在线观看一区二区三区 | 国产成人精品微拍视频 | 99久免费精品视频在线观看2 | 久久一本 |