json.net在77kb json字符串上的性能

本文关键字:json 性能 77kb net 字符串 | 更新日期: 2023-09-27 18:20:38

我正在评测我的ASP.NET MVC应用程序,当我在IIS上使用本地版本时,我注意到反序列化一个大约77kb的对象需要大约100ms,这是预期的吗?

此外,在im分析时CPU似乎达到了最大值,反序列化的任务是否非常繁重,或者我应该在其他地方寻找?

谢谢你能提供的任何帮助。

json.net在77kb json字符串上的性能

对象的复杂性通常在反序列化方面起着重要作用。在递归模式中包含子对象的对象将消耗CPU和内存来正确解析。

如果Value是Name:Value的另一个映射(对象),那么简单的Name:Value映射可能会变得更加复杂。如果正在进行这种类型的递归,您可能需要尝试对JSON进行反规范化(生成名称:[primity]Value),以便系统更容易解析。

对MVC(rdbms数据)进行反规范化可能有点困难。在很多情况下,缓和多对多的关系是不可行的。

您可以尝试将JSON.net与内置的JavaScriptSerializer进行比较,看看是否可以得到改进。

在某一点上,由于包括JSON.NET在内的几个串行化框架利用了反射,对象的去串行化变得很麻烦。此外,当对象大小达到85KB时,垃圾回收器会立即将其推送到大型对象堆,这将对性能产生影响。

我建议使用JSON#——一个性能强大的.NET JSON解析器来提高性能,避免内存瓶颈。