启动时需要少量99%静态数据的最佳存储方法?

时间:2009-05-15 22:29:37

标签: c# xml database serialization binary

我有一些(少量)数据,我需要快速访问初始负载,但之后不会。

现在,我已将数据(通用列表)序列化为Xml文件,并根据需要在加载时对其进行反序列化。

我的问题是我应该使用XmlSerializer还是BinaryFormatter?我并不担心文件大小,而是序列化速度。

5 个答案:

答案 0 :(得分:2)

BinaryFormatterXmlSerializer快。它必须处理更少膨胀的格式而不会出现字符串解析问题。

答案 1 :(得分:2)

有趣的答案。我打算建议将数据保存为代码,并将其构建为一个程序集,该程序集将从应用程序的其余部分引用。

答案 2 :(得分:1)

“我们应该忘记小的效率,大约97%的时间说:过早的优化是所有邪恶的根源。” - Don Knuth

如果它是一个小数量,请使用XmlSerializer,即使它肯定更慢。当有人试图查看文件以诊断崩溃时,这是一种可能导致咒骂的小效率。

答案 3 :(得分:0)

XML很慢,要检查的语法太多。你可以使用制表符分隔或CSV文件吗?

答案 4 :(得分:0)

由于John Saunders没有提出建议,我建议将静态数据序列化为代码。作为对可维护性的微弱点头,您可以将其置于外部组件中。这应该是具有最高性能和最低初始复杂度的解决方案。

如果数据有任何规律性变化,或者是业务逻辑,则忽略此答案。免得被警告!