Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对于启动时需要的少量99%静态数据,最佳存储方法是什么?_C#_Xml_Database_Serialization_Binary - Fatal编程技术网

C# 对于启动时需要的少量99%静态数据,最佳存储方法是什么?

C# 对于启动时需要的少量99%静态数据,最佳存储方法是什么?,c#,xml,database,serialization,binary,C#,Xml,Database,Serialization,Binary,我有一些(少量)的数据,需要在初始加载时快速访问,但在加载之后不能 现在,我已经将数据(通用列表)序列化为Xml文件,并根据需要在加载时对其进行反序列化 我的问题是我应该使用XmlSerializer还是BinaryFormatter?我不担心文件大小,但担心序列化速度。BinaryFormatter比XmlSerializer快。它必须处理更少的臃肿格式,而不存在字符串解析问题 BinaryFormatter比XmlSerializer更快。它必须处理更少的臃肿格式,而不存在字符串解析问题 X

我有一些(少量)的数据,需要在初始加载时快速访问,但在加载之后不能

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


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

BinaryFormatter
XmlSerializer
快。它必须处理更少的臃肿格式,而不存在字符串解析问题

BinaryFormatter
XmlSerializer
更快。它必须处理更少的臃肿格式,而不存在字符串解析问题

XML速度慢,语法太多,无法检查。您可以使用制表符分隔的文件或CSV文件吗?

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

“我们应该忘记小效率,比如说97%的时间:过早优化是万恶之源。”——Don Knuth

如果数量很少,则使用XmlSerializer,即使速度肯定较慢。这是一种小效率,当有人试图查看文件以诊断崩溃时,可能会导致骂人。

“我们应该忘记小效率,比如说97%的时间:过早优化是万恶之源。”--Don Knuth


如果数量很少,则使用XmlSerializer,即使速度肯定较慢。这是一种小效率,当有人试图查看文件诊断崩溃时,可能会导致骂人。

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

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

既然John Saunders没有建议,我建议将静态数据序列化为代码。作为对可维护性的微弱认可,您可以让它驻留在外部组件中。这应该是具有最高性能和最低初始复杂性的解决方案


如果数据有规律地发生变化,或者是业务逻辑,那么忽略这个答案。免得你们被警告

既然John Saunders没有建议,我建议将静态数据序列化为代码。作为对可维护性的微弱认可,您可以让它驻留在外部组件中。这应该是具有最高性能和最低初始复杂性的解决方案


如果数据有规律地发生变化,或者是业务逻辑,那么忽略这个答案。免得你们被警告

没有序列化程序集的XmlSerializer第一次速度非常慢。使用预生成的序列化asm,它具有可接受的perf.XmlSerializer,但没有序列化程序集,第一次速度非常慢。对于预生成的序列化asm,它具有可接受的性能。这是一个非常有趣的想法,但在我的例子中,数据可以从一个部署更改为另一个部署。这是一个非常有趣的想法,但在我的例子中,数据可以从一个部署更改为另一个部署。