求教一个大变量用什么方式存储到本地比较好?

我解析了一组 xml 文件, 将数据以三层的树状结构存储在一个变量里.

然后用 pp 打印存储到文件.

但这个文件有10多mb, 加载速度感觉不是很快.

有没有更好的方式存储和加载?

用三个 vector,每个 vector 对应一层用来存指针

2 个赞

pp 不是会 pretty print 然后引入缩进之类的东西么, 可以试下压缩一下, 或者用 (format "%S") 这种不 pretty 的 print

直接存就可以

如何处理这种XML文件更好不在于用什么格式,而是用什么方法,推荐SAX的event driven方式解析这种文件,可以节约内存

比如这个库就是用这种SAX方式 https://xerces.apache.org/xerces-c/program-sax-3.html

1 个赞

pp 是到字符,要不试试 eieio-persistent 这种方式?

1 个赞

有合适的外部工具做通讯的话,500MB 以内的文件都不算什么,甚至可以用 mmap。只用 Emacs 就难办了,根本没有现成的 SAX parser Emacs 绑定。

本质上还是在用 prin1,加载速度不会额外提升多少

看看能不能直接使用 XML 生态?

比如:使用 Oxygen XML Editor 编辑 XML 文本,写 XSLT 处理 XML 文档。

改成sqlite表存储/访问?