Пишу программу для поиска файлов на компьютере и столкнулся с проблемой, что поиск занимает очень много времени, на мой взгляд, как можно ускорить код?
Использую SSD, точное количество файлов не знаю, но из 465 ГБ занято 279 ГБ
В Visual Studio максимальная оптимизация ( приоритет скорости) (/O2)
void searchFiles(const std::string& searchQuery, const std::string& rootDir, std::vector& results) {
std::queue dirs;
dirs.push(rootDir);
while (!dirs.empty()) {
fs::path currentDir = dirs.front();
dirs.pop();
try {
for (const auto& entry : fs::directory_iterator(currentDir)) {
if (fs::is_directory(entry)) {
dirs.push(entry.path());
}
else {
if (entry.path().filename().string().find(searchQuery) != std::string::npos) {
results.push_back(entry.path().string());
}
}
}
}
catch (const std::exception& e) { }
}
}
Вот код, в котором вызывается функция
void ScannerFile::ScanningFile()
{
for (size_t i = 0; i < defaultPath.size(); i++)
{
searchFiles(defaultPath, "C:\\", ModuleManager::resultFile);
}
}
Пытался как-то переписать, но смысла не было, скорость все равно не изменилась
Например, искался видеофайл 94 секунды
C:\\Users\\mgrr\\Videos\\Desktop\\Desktop 2024.10.20 - 16.03.16.04.mp4
C:\\Users\\mgrr\\AppData\\Roaming\\Microsoft\\Windows\\Recent\\Desktop 2024.10.20 - 16.03.16.04.lnk
C:\\Users\\mgrr\\Videos\\Desktop\\Desktop 2024.10.20 - 16.03.16.04.mp4
C:\\Users\\mgrr\\AppData\\Roaming\\Microsoft\\Windows\\Recent\\Desktop 2024.10.20 - 16.03.16.04.lnk
C:\\Users\\mgrr\\Videos\\Desktop\\Desktop 2024.10.20 - 16.03.16.04.mp4
C:\\Users\\mgrr\\AppData\\Roaming\\Microsoft\\Windows\\Recent\\Desktop 2024.10.20 - 16.03.16.04.lnk
Execution time: 94.0131 seconds
Подробнее здесь: https://stackoverflow.com/questions/791 ... ch-program
Программа поиска файлов ⇐ C++
Программы на C++. Форум разработчиков
1729922488
Anonymous
Пишу программу для поиска файлов на компьютере и столкнулся с проблемой, что поиск занимает очень много времени, на мой взгляд, как можно ускорить код?
Использую SSD, точное количество файлов не знаю, но из 465 ГБ занято 279 ГБ
В Visual Studio максимальная оптимизация ( приоритет скорости) (/O2)
void searchFiles(const std::string& searchQuery, const std::string& rootDir, std::vector& results) {
std::queue dirs;
dirs.push(rootDir);
while (!dirs.empty()) {
fs::path currentDir = dirs.front();
dirs.pop();
try {
for (const auto& entry : fs::directory_iterator(currentDir)) {
if (fs::is_directory(entry)) {
dirs.push(entry.path());
}
else {
if (entry.path().filename().string().find(searchQuery) != std::string::npos) {
results.push_back(entry.path().string());
}
}
}
}
catch (const std::exception& e) { }
}
}
Вот код, в котором вызывается функция
void ScannerFile::ScanningFile()
{
for (size_t i = 0; i < defaultPath.size(); i++)
{
searchFiles(defaultPath[i], "C:\\", ModuleManager::resultFile);
}
}
Пытался как-то переписать, но смысла не было, скорость все равно не изменилась
Например, искался видеофайл 94 секунды
C:\\Users\\mgrr\\Videos\\Desktop\\Desktop 2024.10.20 - 16.03.16.04.mp4
C:\\Users\\mgrr\\AppData\\Roaming\\Microsoft\\Windows\\Recent\\Desktop 2024.10.20 - 16.03.16.04.lnk
C:\\Users\\mgrr\\Videos\\Desktop\\Desktop 2024.10.20 - 16.03.16.04.mp4
C:\\Users\\mgrr\\AppData\\Roaming\\Microsoft\\Windows\\Recent\\Desktop 2024.10.20 - 16.03.16.04.lnk
C:\\Users\\mgrr\\Videos\\Desktop\\Desktop 2024.10.20 - 16.03.16.04.mp4
C:\\Users\\mgrr\\AppData\\Roaming\\Microsoft\\Windows\\Recent\\Desktop 2024.10.20 - 16.03.16.04.lnk
Execution time: 94.0131 seconds
Подробнее здесь: [url]https://stackoverflow.com/questions/79125315/file-search-program[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия