有没有办法在第一次运行时改进json反序列化?

时间:2013-12-10 09:25:22

标签: c# json json.net deserialization

我有一个使用JSON序列化的对象树。

运行反序列化(使用Newtonsoft JSON.net)时,第一次运行时间要长得多,然后第二次运行它。

我猜它是因为反序列化器类是由我正在使用的json框架进行的。我没有证据证明这一点。

有没有办法以某种方式改进第一次反序列化运行?

1 个答案:

答案 0 :(得分:0)

许多框架,特别是那些进行序列化和反序列化的框架,需要额外的时间来初始化,而且你无法改变它。我认为这不是你观察到的JIT,序列化程序通常会动态编译类,而且比JIT-ting需要更多的时间。你可以做的是尽早初始化它们。因此,例如,一旦应用程序启动,就会序列化一些示例对象。

对于ASP.NET,这一点可能不是Application_Start事件,因为它在第一个请求进入时运行。如果你有很多,真的很多的请求,这可能也是晚了。虽然支持缓存预热:http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx。如果你需要快速,缓存预热是完全合理的。