我有一个使用JSON序列化的对象树。
运行反序列化(使用Newtonsoft JSON.net)时,第一次运行时间要长得多,然后第二次运行它。
我猜它是因为反序列化器类是由我正在使用的json框架进行的。我没有证据证明这一点。
有没有办法以某种方式改进第一次反序列化运行?
答案 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。如果你需要快速,缓存预热是完全合理的。