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>
23 lines
640 B
QML
23 lines
640 B
QML
import qbs.FileInfo
|
|
|
|
QtcManualtest {
|
|
name: "Manual SubDirFileIterator test"
|
|
type: ["application"]
|
|
|
|
Depends { name: "Utils" }
|
|
Depends { name: "app_version_header" }
|
|
|
|
files: [
|
|
"tst_subdirfileiterator.cpp",
|
|
]
|
|
|
|
cpp.defines: {
|
|
var defines = base;
|
|
var absLibExecPath = FileInfo.joinPaths(qbs.installRoot, qbs.installPrefix,
|
|
qtc.ide_libexec_path);
|
|
var relLibExecPath = FileInfo.relativePath(destinationDirectory, absLibExecPath);
|
|
defines.push('TEST_RELATIVE_LIBEXEC_PATH="' + relLibExecPath + '"');
|
|
return defines;
|
|
}
|
|
}
|