Javascript,将文件存储在JSON或TSV中,以提高读取和解析的效率
Javascript, storing files in JSON or in TSV for efficiency in reading and parsing?
在我的代码中,我需要从不同的文件中读取TSV (tab格式)数据,并将其转换为单个文件,以提高用户可用性。在保存文件的那一刻,我面临着一个决定:
- 将其存储在JSON格式中,我已经拥有下一个逻辑所需的对象结构
- 再次以TSV格式存储并随后再次解析(或使用诸如http://papaparse.com/或类似的库,不知道那里有什么可用)
我尝试了第一个选项,认为我会通过直接读取JSON来节省解析时间。然而,JSON数据的文件大小比TSV格式存储的要大得多,也许我在不解析数据方面的优势是我在读取更多数据时失去了数据。
有一些库,如http://msgpack.org/,可以帮助减少JSON文件大小。也许有一些TSV库可以避免我再次解析数据(见上文)。我真的不知道JSON有多有效。解析函数,也许我在那里花了很长时间。
所以问题是,什么是最好的策略,当你有一个javascript复杂的对象,你想把它保存在一个文件,以供以后读取?
- 存储在JSON中?
- 还是存储在TSV中?
如果您希望优化大小,那么(除了压缩之外),您可能需要考虑使用串行化机制,如协议缓冲区、MessagePack、Avro。没有一个正确的答案,但是TSV获胜的一个方面是在重复许多条目时不重复对象属性名称。这些序列化格式中的许多都应用了类似的原则(通过将模式置于符合该模式的实际数据之外)。当然,一旦通过gzip之类的压缩器运行数据,这种冗余可能就不太重要了,因此应该在压缩文件后真正测量它们,以确定哪些操作值得执行。JSON和TSV都有大量的库来处理它们,所以从速度/编码的角度来看,哪个"更好"似乎纯粹是个人偏好的问题,因为使用这两种格式都应该很容易。至于大小,请在应用压缩后测量。
相关文章:
- 从桌面读取python文件时高亮显示代码
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 正在读取高图表中上载的csv文件
- 防止用户在文本字段中键入和粘贴,并且只允许从USB条形码读取器读取
- 高图表热图 未捕获类型错误:无法读取未定义的属性“原型”
- 高图表: 类型错误: 无法读取未定义的属性“0”
- 以编程方式读取散点图的值 - 高库存
- 创建高图表(柱形图)并从外部 json 文件中读取数据
- 获取错误'无法读取属性'文档'未定义的'在导入exporting.js时(导出高图表)
- 未捕获的类型错误:无法读取属性'0'未定义的javascript错误和高图表
- Html5文件读取器-读取本地Json数组文件并仅显示特定部分
- 读取和替换HTML中的文本会导致高CPU负载
- 在HTML表单字段中设置/读取禁用属性的成本有多高?