Only call recurse() when path points to a directory in du(1)

This improves performance by ~30%.
Cette révision appartient à :
FRIGN
2015-03-12 13:29:12 +01:00
Parent af61ba738c
révision 3b187f4826

3
du.c
Voir le fichier

@@ -47,7 +47,8 @@ du(const char *path, int depth, void *total)
return; return;
} }
recurse(path, du, depth, &subtotal); if (S_ISDIR(st.st_mode))
recurse(path, du, depth, &subtotal);
*((size_t *)total) += subtotal + nblks(st.st_blocks); *((size_t *)total) += subtotal + nblks(st.st_blocks);
if (!sflag && depth <= maxdepth && (S_ISDIR(st.st_mode) || aflag)) if (!sflag && depth <= maxdepth && (S_ISDIR(st.st_mode) || aflag))