2012-03-01 129 views
2

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

+3

为什么不写一个测试程序来计算每种方法? – ChrisF 2012-03-01 12:26:25

+1

什么是这个数据?它是某种形式的应用程序状态? – 2012-03-01 12:29:59

+1

坦率地说,你最大的问题在于带宽;所以a:我不会使用XmlSerializer(更像protobuf-net这样简洁的东西似乎是合适的),b:我不会将*这个特殊的数据存储在SQL数据库中 - 我会以某种方式存储它的关键/值存储,如redis – 2012-03-01 12:35:20

回答

0

在大多数情况下,调用数据库将是你最大的性能瓶颈。所以,如果不知道比发布的更多细节,我会倾向于使用单个大型对象。如果可以并行处理3-4个较小的请求,您可能会做得更好,但这可能会更复杂,并且可能会更快导致缩放问题。

后续问题,可能需要在更好的答案指向你:

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