Javascript,将文件存储在JSON或TSV中,以提高读取和解析的效率

Javascript, storing files in JSON or in TSV for efficiency in reading and parsing?

本文关键字:读取 高读取 和解 效率 存储 文件 JSON TSV Javascript      更新时间:2023-09-26

在我的代码中,我需要从不同的文件中读取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都有大量的库来处理它们,所以从速度/编码的角度来看,哪个"更好"似乎纯粹是个人偏好的问题,因为使用这两种格式都应该很容易。至于大小,请在应用压缩后测量。