gpt4 book ai didi

c - 当程序遍历和报告文件系统细节时如何最好地分配和使用内存

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:49:32 24 4
gpt4 key购买 nike

我有一个程序可以读取所有文件系统文件/目录名称、大小等,并填充到树数据结构中。完成后,它将生成一份报告。

我想编写我的程序,以最有效的方式使用内存收集并报告这些数据,而不会超出我的堆空间。

我担心如果文件系统有很多文件和目录,它会消耗大量内存并可能最终用完(malloc() 将开始失败)。

最终这是真正的内存消耗,有什么方法/技巧可以克服这个问题吗?

最佳答案

您可以为每个文件夹节点使用享元设计模式。

http://en.wikipedia.org/wiki/Flyweight_pattern

您可以使用指向部分路径(文件夹名称)的指针的位数组来代替存储每个项目的完整路径。如果需要,这些可以很容易地重建。

这还取决于您的报告需要什么。您是否需要在构造期间将所有信息保存在内存中,或者您是否可以在遍历树时只累积一些空间计数变量?

关于c - 当程序遍历和报告文件系统细节时如何最好地分配和使用内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8396463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com