forked from qt-creator/qt-creator
Compare the total time spent on iterating a big file tree with 3 different time iterators: - Utils::SubDirFileIterator - manually written iterator using QDir::entryInfoList() - QDirIterator The iterator run through about one million files (including about ~100K directories). The more files above this number to be iterated over, the bigger the relative time difference of SubDirFileIterator compared to other iterators. The number of generated files depends on the running machine's core number. In my case: Number of cores: 24 Number of generated files: 898753 Number of generated directories: 112345 Time spent on generating file tree: ~2 seconds Time spent on iterating using SubDirIterator: ~80 seconds Time spent on iterating using manual iterator: ~8 seconds Time spent on iterating using QDirIterator: ~4 seconds Time spent on removing generated file tree: ~2 seconds Task-number: QTCREATORBUG-28892 Change-Id: I94d7cf0169a470820dc27f39c9cdb4150eea51c1 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
11 lines
389 B
CMake
11 lines
389 B
CMake
file(RELATIVE_PATH RELATIVE_TEST_PATH "${PROJECT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}")
|
|
file(RELATIVE_PATH TEST_RELATIVE_LIBEXEC_PATH "/${RELATIVE_TEST_PATH}" "/${IDE_LIBEXEC_PATH}")
|
|
|
|
add_qtc_test(tst_manual_subdirfileiterator
|
|
MANUALTEST
|
|
DEFINES "TEST_RELATIVE_LIBEXEC_PATH=\"${TEST_RELATIVE_LIBEXEC_PATH}\""
|
|
DEPENDS Utils app_version
|
|
SOURCES
|
|
tst_subdirfileiterator.cpp
|
|
)
|