【发布时间】:2015-08-12 07:21:48
【问题描述】:
我阅读了有关 QTextDocument 序列化的旧主题:here 和 here。 据我了解,一次真正的无需额外代码的序列化和反序列化方法是将文档保存和读取为 html 文件。 但是,我认为,这种方法并不快,因为 html 字符串解析是一个困难且耗时的操作。
在其他情况下,我可以将文档保存为二进制格式并通过按顺序调用的 QTextCursor 方法对其进行反序列化,我认为这比 html 解析更快。
是否存在 QTextDocument 二进制序列化的代码示例?
【问题讨论】:
-
@Arun 我在帖子中写了这个链接。存在可以序列化为二进制格式的描述,但没有代码示例。
-
@Milovidov - 二进制序列化将非常困难,它不像是单字节数组,文本文档内部有许多不同的资源,它们甚至无法通过公共 API。您是否真的根据经验确定您存在性能问题?
-
@ddriver 我没有基准测试,因为我不知道我可以比较哪种解决方案。二进制序列化比逻辑解析文本字符串更快。
-
@Milovidov - 毫无疑问,解析格式化文本会更慢,但你还没有确定它太慢而无用。正如我所说,二进制序列化在这种情况下几乎是不可能的。因此,您可能希望使用 HTML,并且仅当它被证明太慢时,才使用更复杂的解决方案来打扰自己,因为太复杂以至于不值得提高性能。
标签: qt serialization binary-data qtextdocument qtextcursor