色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

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

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

本博客將測(cè)試MessagePack 和System.Text.Json 序列化和反序列化性能
項(xiàng)目文件:

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";}    }}

然后我們將使用基準(zhǔn)測(cè)試開始我們的性能測(cè)試:

然后測(cè)試結(jié)束:

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

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

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

標(biāo)簽: ASP.NET
主站蜘蛛池模板: 亚洲天堂网在线观看 | 99re热精品视频国产免费 | 九九九九热精品免费视频 | 中国一级特黄剌激爽毛片 | 国产美女一区精品福利视频 | 免费一级毛片在线播放放视频 | 日本高清www片 | 韩国三级大全久久网站 | 99久久综合狠狠综合久久一区 | 欧美chengren| cao在线| 免费在线观看黄色毛片 | 国产亚洲精品久久久久久无 | 日本一级毛片视频无遮挡免费 | 久久久久久久久国产 | 欧美一区二区三区久久久人妖 | 久草在线观看首页 | 久久久香蕉视频 | 欧美性色黄大片www 欧美性色黄大片一级毛片视频 | 99久久精品视香蕉蕉er热资源 | 92手机看片福利永久国产 | 怡红院在线a男人的天堂 | 特级淫片日本高清视频 | 欧美特级午夜一区二区三区 | 又黄又骚 | 国产一级大片在线观看 | 国产私拍福利精品视频推出 | 国产一区二区三区久久 | 亚洲一区免费在线 | 国产欧美精品一区二区三区 | 成人国产第一区在线观看 | 欧美精选欧美极品 | 国产美女在线精品亚洲二区 | 日韩欧美日本 | 精品久久九九 | 综合欧美一区二区三区 | 久久受www免费人成看片 | 欧美成人在线网站 | 97国产精品欧美一区二区三区 | 国产嫩草影院在线观看 | 在线观看va |