我正在用Python编写一个磁盘空间使用程序,我已经有了我想要的功能,但是速度很慢。我将要分析的文件系统可能是数百GB,在许多深度密集的文件夹中有数千个文件。在
我用树形图显示数据,这是基于前面链接的论文中的“拆分”布局。布局的创建和求解都是非常快速的操作。http://www.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2005/rapporter05/engdahl_bjorn_05033.pdf
我走在既定的道路上手术室步行并将文件夹和文件及其大小添加到树图中。我得到每个文件的大小,并将其存储在字典缓存中(其中cache[filePath]=size),这样我就可以轻松地再次检索它。所有这些都很快,除了手术室步行. 跑步手术室步行一个人就需要30多秒,有时几分钟。在
我知道我不能让它在结构上走得更快,但是我想以某种方式缓存结果,这样将来它会更快。这是因为该应用程序允许导航树映射,在这里您可以单击任何部分(这是一个文件夹),它将使树映射的“根”。在
因此,我需要一个缓存解决方案,它可以方便地访问任何文件/文件夹,以及层次结构中的简单导航,这样,如果我从“根”节点开始,我可以跳到任何深度的任何指定子节点,然后从那里我可以在结构中上下移动。在
我宁愿不把数据结构和导航合并到树状图中。如果解决方案是在计划的步行和尺寸调整部分,那将是最好的。最后,我只需要对文件/文件夹结构及其大小进行一次可漫游的重新创建。在
有适合这种结构的图书馆吗?或者我自己写这个有多容易?我以前没有使用过这样的结构,所以我不知道创建它的最佳方法,以便我有我需要的访问类型。在
你查过Redis了吗?它速度快,而且能很好地与Python配合使用。另外,在一个fork启动多个线程/进程以加快搜索速度呢?在
redis-py
相关问题 更多 >
编程相关推荐