当前位置:  技术问答>linux和unix

在ARM上用opendir、readdir统计文件总数速度超慢啊

    来源: 互联网  发布时间:2016-11-13

    本文导语:  我在ARM(主频:500MHz)上用opendir、readdir统计文件总数,2000多文件就用了56秒之多,有没有更好的统计办法呢?代码是不是写得有问题? 附统计代码: if ((dp = opendir(PATH)) == NULL) { ... } while ((dirp = readdir(dp)) != NUL...

我在ARM(主频:500MHz)上用opendir、readdir统计文件总数,2000多文件就用了56秒之多,有没有更好的统计办法呢?代码是不是写得有问题?

附统计代码:

if ((dp = opendir(PATH)) == NULL) {
...
}

while ((dirp = readdir(dp)) != NULL) {
    snprintf(pathname, sizeof(pathname), "%s/%s", PATH, dirp->d_name);

    res = lstat(pathname, &statbuf);
    if ((res == 0) && S_ISREG(statbuf.st_mode)) {
        count++;
    }
}

closedir(dp):

|
试试scandir()
速度应该也差不多

|
APUE上有个现成的,试试性能。

或者参考 man 3 ftw

|
我也很关心这个问题,不知道有什么好的解决方法没有。就是有些系统函数在PC上用可能没有什么问题,但是在资源受限的情况下怎样去避免此类应用过多的消耗资源呢?

我个人的想法是首先程序设计的思路可能换一下,尽量减少不必要循环遍历操作。改变有些功能的设计方案比如让用户自己去选择路径找到目标文件,而不是自动循环遍历等等。

|
你用fts_open试试

|
看看find命令的统计时间呢
find yourpath | wc -l

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • arm-elf-gcc 和 arm-linux-gcc有什么区别?arm-elf-gcc里的elf代表什么?
  • 关于买ARM9或ARM11的开发板的问题~~~
  • arm-unknown-linux-gnu-gcc與arm-linux 的compiler有不同嗎
  • make ARCH=arm CROSS_COMPILE=arm-linu-错误
  • 请问哪有 arm-linux-nm, arm-linux-addr2line等等这些工具的使用说明~~~
  • 使用eclipse 加入arm-elf-gcc 或arm-linux-gcc 编译器为什么不好使
  • 现在是ARM9还是ARM11比较流行啊?我想买开发板什么牌子的比较好啊,我是大学生。
  • ARM ping不通虚拟机,虚拟机可以ping通ARM
  • 疑惑softfloat的问题,并求arm-linux-gcc和arm-linux-softfloat-gcc4.1.1
  • 新手请教 移植2.6内核到arm9,芯片:arm926ejs,Flash: NOR
  • 请教:make ARCH=arm CROSS_COMPILE=arm-linu- menuconfig出错
  • arm-linux-gcc 交叉编译poco-1.3.5-all 报错stlport_arm_linux_gcc库找不到
  • 关于arm 2440 选择arm-linux-gcc编译器版本的问题
  • 字节对齐 ARM VS Not ARM,经验人士请指点!!
  • ARM开发怎么实现域名解析呢,ARM板能ping通IP,不能ping通域名?
  • 关于ARM的几个基本概念
  • arm linux 2.6.29 下载初级问题,大家指教
  • 关于ARM内核编译
  • arm-elf-gcc问题
  • ARM linux学习的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3