C# 一次性序列化/反序列化大对象与多次序列化/反序列化小对象?

C# 一次性序列化/反序列化大对象与多次序列化/反序列化小对象?,c#,serialization,C#,Serialization,我需要在每次页面加载时从数据库反序列化我的对象,并在按下“下一步”按钮时在数据库中再次序列化。我想知道加载/保存页面的最快方式是什么。 我是否应该将大对象拆分为3-4个小对象,并序列化/反序列化3-4次。这样,我将3-4次与数据库对话,3-4次初始化XMLSerializer。 另一种方法是序列化/反序列化完整对象,该对象将有一次数据库命中和XMLSerializer的一次初始化。但XML流(序列化数据)将非常大。 哪个选项最快?使用异步模型序列化/反序列化完整对象可能会有所帮助 异步模型:使用

我需要在每次页面加载时从数据库反序列化我的对象,并在按下“下一步”按钮时在数据库中再次序列化。我想知道加载/保存页面的最快方式是什么。 我是否应该将大对象拆分为3-4个小对象,并序列化/反序列化3-4次。这样,我将3-4次与数据库对话,3-4次初始化XMLSerializer。 另一种方法是序列化/反序列化完整对象,该对象将有一次数据库命中和XMLSerializer的一次初始化。但XML流(序列化数据)将非常大。
哪个选项最快?

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


异步模型:

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


异步模型:

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

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

  • 每个物体有多大
  • 有多少用户将同时请求此代码
  • 内存、数据库连接或其他容量是否有限制

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

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

  • 每个物体有多大
  • 有多少用户将同时请求此代码
  • 内存、数据库连接或其他容量是否有限制

为什么不编写一个测试程序对每个方法计时?这些数据是什么?它是某种形式的应用程序状态吗?坦白说,这里最大的问题是带宽;所以a:我不会使用XmlSerializer(像protobuf net这样更简洁的东西似乎是合适的),b:我不会将这个特定的数据存储在SQL数据库中——我会将它存储在某种键/值存储中,比如Redis。为什么不编写一个测试程序来对每个方法计时?这些数据是什么?它是某种形式的应用程序状态吗?坦白说,这里最大的问题是带宽;所以a:我不会使用XmlSerializer(像protobuf net这样更简洁的东西似乎更合适),b:我不会将这个特定的数据存储在SQL数据库中——我会将它存储在某种键/值存储中,比如redis