序列化/反序列化大对象单次Vs多次序列化/反序列化小对象?

时间:2012-03-01 12:25:21

标签: c# serialization

我需要在每个页面加载时从数据库反序列化我的对象,并在下一个按钮的命中时在数据库中再次序列化。我想知道哪个是加载/保存页面的最快方式。 我应该将我的大对象拆分为3-4个小对象并序列化/反序列化3-4次。通过这种方式,我将与数据库3-4次交谈并初始化XMLSerializer 3-4次。 其他方法是序列化/反序列化完整对象,这将具有单个数据库命中和XMLSerializer的单个初始化。但XML流(序列化数据)将很大。 哪个选项最快?

2 个答案:

答案 0 :(得分:0)

使用异步模型序列化/反序列化完整对象可能会有所帮助。

异步模型:http://msdn.microsoft.com/en-us/magazine/cc164128.aspx#S4

答案 1 :(得分:0)

在大多数情况下,调用数据库将是您最大的性能瓶颈。因此,在不了解您发布的详细信息的情况下,我会倾向于使用单个大型对象。如果你可以并行化3-4个较小的请求,你可能会做得更好,但这可能更复杂,更有可能更快地导致扩展问题。

可能为您提供更好答案的后续问题:

  • 每个对象有多大?
  • 有多少用户会对此代码发出并发请求?
  • 内存,数据库连接或其他容量是否有限制?