Box:Linux,gcc。
问题:
通过递归扫描此文件夹,找出包含数千个项目的主文件夹的文件签名。
到目前为止:
使用mmap()
系统调用加载每个文件的前1k字节并检查文件幻数。
该方法的缺点是,对于遇到的每个文件,我必须进行两次系统调用(例如mmap()
和munmap()
)。
尽可能的最佳解决方案:
我想分配一块内存,在这个唯一的缓冲区中加载每个文件(连续),并在处理完成后解除分配,这意味着对于每个扫描的文件夹,我只会使用两个系统调用。
我无法弄清楚要使用哪个系统调用来实现这一点,即使这个解决方案是现实的也不行!
非常感谢任何建议。
答案 0 :(得分:0)
在您知道表现不够之前,不要担心表现。您的时间比程序运行时间的增加更有价值(极少数情况除外)。当表现不够时,衡量在挖掘之前。有很多关于“绩效优化”的战争故事完全是浪费(如果不是有害的话)。