前言
windows下文件夹目录大小没有直接获取的方法,一般直接使用递归的方式来计算,或者使用多线程提高并发度计算。
以下举的例子是计算目标目录大小以及目标目录下所有子目录大小的例子, 不是计算单一目录大小的例子
ThreadPool.h
的实现来源于: https://github.com/log4cplus/Threadpool
效果比较
PS: 输出的上部分是递归方式, 下部分是线程池方式
线程池的池大小为1时, 耗时略多于普通递归(因为线程的一些额外开销)
池的大小适当增大, 可以有效的提高效率(但池过于大, 也会造成效率降低)
实现的代码
ThreadPool.h
展开代码
1 | // -*- C++ -*- |
GetDirectorySize.cpp
展开代码
1 |
|