在相同的内存块C中加载数千个文件

时间:2013-01-16 17:30:34

标签: c

Box:Linux,gcc。

问题:

通过递归扫描此文件夹,找出包含数千个项目的主文件夹的文件签名。

到目前为止:

使用mmap()系统调用加载每个文件的前1k字节并检查文件幻数。 该方法的缺点是,对于遇到的每个文件,我必须进行两次系统调用(例如mmap()munmap())。

尽可能的最佳解决方案:

我想分配一块内存,在这个唯一的缓冲区中加载每个文件(连续),并在处理完成后解除分配,这意味着对于每个扫描的文件夹,我只会使用两个系统调用。

我无法弄清楚要使用哪个系统调用来实现这一点,即使这个解决方案是现实的也不行!

非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

在您知道表现不够之前,不要担心表现。您的时间比程序运行时间的增加更有价值(极少数情况除外)。当表现不够时,衡量在挖掘之前。有很多关于“绩效优化”的战争故事完全是浪费(如果不是有害的话)。