为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 JSON 反序列化与 System.Text.json 如此缓慢?

为什么 JSON 反序列化与 System.Text.json 如此缓慢?

Go
catspeake 2022-10-04 18:46:07
我有一个最小的项目,它用C#和Go编写了100,000次,反序列化json。性能差异很大。虽然很高兴知道使用 Go 可以实现性能目标,但我更愿意在 C# 中实现可比较的结果。鉴于C#慢了193倍,我认为错误在我这边,但我不知道为什么。性能$ dotnet run .real    1m37.555suser    1m39.552ssys     0m0.729s$ ./jsonperfreal    0m0.478suser    0m0.500ssys     0m0.011s源代码 C#using System;namespace jsonperf{    class Program    {        static void Main(string[] args)        {            var json = "{\"e\":\"trade\",\"E\":1633046399882,\"s\":\"BTCBUSD\",\"t\":243216662,\"p\":\"43818.22000000\",\"q\":\"0.00452000\",\"b\":3422298876,\"a\":3422298789,\"T\":1633046399882,\"m\":false,\"M\":true}";            for (int i = 0; i < 100000; i++)            {                if (0 == i % 1000)                {                    Console.WriteLine($"Completed: {i}");                }                var obj = BinanceTradeUpdate.FromJson(json);            }            Console.WriteLine("Done");        }    }}
查看完整描述

1 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

这需要这么长时间的原因是,您每次都会初始化一个新对象。JsonSerializerOptions

初始化序列化程序一次 &您将看到巨大的性能改进(对我来说是70%以上)。


查看完整回答
反对 回复 2022-10-04
  • 1 回答
  • 0 关注
  • 89 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信