哪个更好的二进制序列化或XML序列化?

时间:2014-02-27 05:49:14

标签: c# .net serialization

如果我有一个包含一些string,int和List类型属性的类,我想将该类对象存储到我的物理光盘中。因此,哪种方法更好的性能和文件大小明智。

3 个答案:

答案 0 :(得分:3)

真的没有正确答案。在性能方面,二进制方法速度更快,文件大小更小,XML解析起来更慢,并且由于它添加了“元数据”来描述事物,因此具有更大的大小。

但它确实是应用程序的问题,XML是人类可读的并且更通用,而二进制格式取决于您的实现,如果他们没有此文件的程序/规范,则其他人无法读取(除非他们对它进行逆向工程......)

二进制格式也可以让您在压缩/加密等方面获得更多自由......

答案 1 :(得分:0)

实际上取决于具体情况。如果您有两个使用相同数据的应用程序,则可以使用Binary Serialization faster but less flexible。但是对于不同的系统,例如在C#中的另一个系统,在Python中,XML序列化更适合于它的flexibility。而且你必须牢记性能问题。所以,总有一个权衡。

答案 2 :(得分:0)

我同意Jonathon和Urilil的观点。 虽然二进制文件对性能和文件大小更有效,但我不建议使用它。 你将面临两个问题: - 我遇到一个错误,你怎么知道这个bug是在写入还是在读取方面? - 当你的班级发展(并且会发生)时,你可能无法读取应用程序的最新版本的旧文件

因此,使用XML或JSON。 如果您仍然需要二进制文件,请查看协议缓冲区