有效访问最新到最旧的文件

时间:2018-11-25 21:58:41

标签: javascript node.js json performance filesystems

因此,对于一个我正在从事的项目,我正在本地保存大量json文件。每个文件都有一个列出的时间,我希望能够访问最新到最旧的文件,而不必仔细查看每个文件中的日期并进行排序。我当时在考虑使用二叉树来做到这一点,但我想不出一种实现此目的的好方法。在npm中是否有用于此目的或其他方式的模块,我可以这样做以获得更好的结果。

2 个答案:

答案 0 :(得分:0)

fs.stat在这种情况下很有用,并且在npm中不需要任何模块。
但是,在这种情况下,同步循环会遇到很多问题。为此,您可能需要使用await和async(有关更多详细信息,请参见this)。
fs.stat返回一个对象,该对象返回诸如何时编辑文件以及何时创建文件之类的信息。
如果要将JSON文件放在一个文件夹中,则可以使用fs.readdir;。如果没有,则可以使用fs.readdir列出当前文件夹中的所有文件,然后使用mime-type npm模块检查要订购的文件是否为JSON文件。

答案 1 :(得分:0)

您可以做的是存储您自己的查找文件。这是一个单独的json文件,其中包含ID(文件名)及其关联的内部日期详细信息。这也使您能够添加可能需要搜索/排序的其他数据。这种方法的缺点是您需要确保查找文件和实际文件都同步。这意味着无论您在何处对数据进行增删,都需要确保查找已更新。替代方法是构建一个程序,该程序定期对您的所有文件进行长时间扫描,然后构建查找文件。这样一来,您不必对所有更改进行编辑,但会限制查找文件的最新性。

所有性能提升通常都需要牺牲内存/缓存和复杂性。

唯一的另一个重要问题是,您是否实际测试了系统性能是否存在瓶颈?您确定甚至需要对此进行优化吗?