如何保存变量到内存中,或文件中。

2019-03-23 15:55:15 +08:00
 m939594960

现在有个格式非常混乱的 JSON 文件,需要我解析之后进行分析。由于需要遍历数据,所以没办法流式加载。

每次解析这个 JSON 文件都需要很长时间,导致我调试程序非常非常麻烦。

又没什么办法能把存放解析结果的变量存储在某个内存区域 或者 以二进制的形式存到文件,然后下次运行的时候可以直接读取,不用每次都重新解析这个 json。

不限定语言,Golang php python js 都行,因为只是一个简单的数据处理。

2853 次点击
所在节点    问与答
25 条回复
H0H
2019-03-24 11:01:51 +08:00
不限定语言的话,Java 的序列号 /反序列化就能搞定啊。

你说了只是解析慢,那就把解析后的内存数据结构保存下来,下次不需要再重新解析即可。Java 的序列化 /反序列化能做到,其他 VM 类语言应该也都能做到。JS、C 这类应该都做不到。
m939594960
2019-03-24 11:48:44 +08:00
@ech0x #12 那个库说的每秒 2g 但是实际达不到
m939594960
2019-03-24 11:49:55 +08:00
@wentaoliang #18 感觉很接近,我试试
m939594960
2019-03-24 11:52:45 +08:00
@leis1015 #14 确实用了反射, 但是手撸结构实在太浪费时间了。 前三个我再了解了解。🙏
delectate
2019-03-24 15:43:00 +08:00
Simdjson:一个超高速的 JSON 解析工具 https://www.freebuf.com/sectool/198277.html

simdjson 使用的指令比最先进的解析器 RapidJSON 少四分之三,比 sajson 少百分之五十。据我们所知,simdjson 是第一个在商用处理器上以每秒千兆字节运行的完全验证的 JSON 解析器。

解析器 GB /秒
simdjson 2.2
RapidJSON 编码验证 0.51
RapidJSON 编码验证,原位 0.71
sajson (原状,动态) 0.70
sajson ( insitu,static ) 0.97
dropbox 0.14
FASTJSON 0.26
gason 0.85
ultrajson 0.42
jsmn 0.28
cJSON 0.34

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/547736

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX