0

盒子:Linux,gcc。

问题 :

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

到目前为止完成:

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

如果可能的话,最好的解决方案:

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

我不知道使用哪个系统调用来实现这一点,即使这个解决方案是现实的!

任何建议将不胜感激。

4

1 回答 1

0

在您知道这还不够之前,不要担心性能。您的时间比程序运行时间的收益更有价值(极少数情况除外)。当性能不够时,在深入研究之前进行测量。有许多关于“性能优化”的战争故事完全是浪费(如果不是积极有害的话)。

于 2013-01-20T02:57:38.500 回答