我有一个最小的项目,它用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%以上)。
- 1 回答
- 0 关注
- 89 浏览
添加回答
举报
0/150
提交
取消