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

Javascript,将文件存储在JSON或TSV中以提高读取和解析效率?,javascript,json,file,Javascript,Json,File,在我的代码中,我需要从不同的文件中读取TSV tab格式的数据,并将其转换为单个文件,以提高用户的可用性。在保存文件时,我面临一个决定: 将其存储为JSON格式,我已经拥有下一个逻辑所需的对象结构 以TSV格式再次存储它,然后再次解析它,或者使用类似的库,我真的不知道有什么可用 我尝试了第一种选择,认为通过直接读取JSON可以节省解析时间。 然而,JSON数据的文件大小比以TSV格式存储的要大得多,这也许是我在不解析数据时获得的好处,而我在读取更多数据时丢失的 有这样的库可以帮助减少JSON文件

在我的代码中,我需要从不同的文件中读取TSV tab格式的数据,并将其转换为单个文件,以提高用户的可用性。在保存文件时,我面临一个决定:

将其存储为JSON格式,我已经拥有下一个逻辑所需的对象结构 以TSV格式再次存储它,然后再次解析它,或者使用类似的库,我真的不知道有什么可用 我尝试了第一种选择,认为通过直接读取JSON可以节省解析时间。 然而,JSON数据的文件大小比以TSV格式存储的要大得多,这也许是我在不解析数据时获得的好处,而我在读取更多数据时丢失的

有这样的库可以帮助减少JSON文件大小。也许有一些TSV库可以避免我再次解析数据,见上文。我真的不知道JSON.parse函数的效率有多高,也许我在那里花了很长时间

所以问题是,当您有一个javascript复杂对象并且希望将其保存在文件中以便以后读取时,最好的策略是什么

存储在JSON中? 还是存储在TSV中?

如果您想优化大小,那么除了压缩之外,您还可以考虑使用类似的序列化机制。没有一个正确的答案,但TSV获胜的一个方面是在重复许多条目时不复制对象属性名称。许多序列化格式通过使模式位于符合该模式的实际数据的外部来应用类似的原则。当然,一旦您通过gzip之类的压缩器运行数据,这种冗余可能不会有多大影响,因此您应该在压缩文件后真正测量它们,以确定哪些是值得做的。JSON和TSV都有大量的库来处理它们,因此从速度/编码的角度看哪一个更好似乎纯粹是个人喜好的问题,因为应该可以轻松地使用这两种格式。至于大小,请在应用压缩后再测量。

我不明白,执行与之前相同的过程,再保存第二个文件,然后再次读取,如何节省时间。每次程序运行时都必须读取原始源文件吗?可能我的对象结构在代码中已经是这个大小了——如果你说的是内存中的大小,如果你只保留对你实际需要的特定对象的引用,那么其余的将最终被垃圾收集,释放内存。这也是由于可用性。在用户必须提交4个文件进行一次分析之前。如果他们想比较2个分析,那么就比较8个文件。现在我正在将4个文件转换成1个JSON格式的文件,我还认为如果在这个过程中我存储了已经解析的信息,整个过程会更高效。非常感谢链接,我想我问的是什么更高效,存储并稍后解析JSON或存储并稍后解析TSV文件。我正在更新这个问题以反映这一点,从你的回答来看,你是说差异是边际的?@Gerard,我是说关于解析的容易程度的差异是边际的,尽管这取决于语言。就大小而言,未压缩的大小可能大不相同,但您需要在使用特定的压缩算法进行压缩时测量大小,您可以在代码中部署该算法以执行公平比较。但是,如果您非常关心紧凑性,那么直接使用专门针对大小进行优化的序列化格式可能比这一度量更值得投资。我会考虑压缩文件,但我不确定是否愿意这样做,因为如果文件是纯文本形式,则可以对其进行编辑。我真的不在乎文件大小,除非文件大小意味着Chrome会因此崩溃,我不确定浏览器崩溃的原因是它在读取大文件还是在解析大文件。最后,如果我假设解析JSON和TSV在资源方面是等价的,并且压缩可以使文件大小相等,那么正如您所说的,这是个人偏好的问题