|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Petro123Алексей К, Говорит что список машины может устареть)А не надо список нигде хранить. Получать списки "на лету". В наш "век гигабайтов и гигагерцев" обработать пару миллионов строк вроде как не проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 11:47 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Алексей К, +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 11:56 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Ролг ХупинskyANAпропущено... Несколько часов у юзера? Сомневаюсь, что у отдельного юзера миллионы файлов. Смотрите на чём конкретно тормозит Ваша обработка. LINQ используете? Конечно, миллионов файлов нет, тыщи, LINQ тоже нет. Читается список в List<string>, затем суётся в DGV , затем проверяется и формируется целевой список несуществующих во втором DGV. Код написан 300 лет назад ИМХО очевидно что пора переписать "читается... затем... затем... и" в один проход. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 12:25 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Dima TPetro123пропущено... Головка HDD одна ))). Он же не файлы будет читать, а содержимое папок. Виндовс эту инфу кэширует. Хм, как я понял проверяется существование файла, то есть под капотом GetFileAttributes . ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 12:28 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Ролг Хупин, кстати, а где файлы хранятся? На локальном диске, или на сетевой шаре? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 12:28 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Ролг ХупинLINQ тоже нет.Это главное, от LINQ все беды! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 12:30 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
skyANADima Tпропущено... Он же не файлы будет читать, а содержимое папок. Виндовс эту инфу кэширует. Хм, как я понял проверяется существование файла, то есть под капотом GetFileAttributes . В случае с NTFS вся эта инфа хранится в MFT , которая по сути просто файл, т.е. может быть закэширована как любой другой файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 12:38 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Ролг Хупин, Очевидно что если указан путь x:\a\b\c\d\...\x\y\z.dat но путь обрывается на x:\a\b\c то можно не проверять все пути которые так начинаются. Следователно: 1. сортитуем без учёта регистра 2. проверяем последовательно на наличие файла. 3. При отсутсвии файла находим кротчайщий путь который не сушествует. все последуйюшие файлы кототрые начинаются с указанного пути сразу относим в список не сушествуюших. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 15:10 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
на счет кеширования , легко убедиться в её работе. наберите команду в консоли dir \ dir notepad.exe /s /b /a дождитесь окончания и снова dir notepad.exe /s /b /a 2 раз очевидно, что поиск идет через кеш. но нафига все эти геморои, нельзя просто использовать PathFileExists ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 15:23 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
skyANAРолг Хупин, кстати, а где файлы хранятся? На локальном диске, или на сетевой шаре? Могут и локальн, но в 99% случаев на шаре. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 16:46 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Ролг ХупинskyANAРолг Хупин, кстати, а где файлы хранятся? На локальном диске, или на сетевой шаре? Могут и локальн, но в 99% случаев на шаре. И шара замапплена всегда на одну букву? Весело у вас там. Когда 5 юзверей будут шару одну проверять. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 17:05 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
А какая СУБД и где хранятся файлы? Если MS SQL + файлы хранятся на той же железке, что и база, то можно сделать xp (extended stored proc), и сразу получать ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 12:42 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
13thЕсли MS SQL + файлы хранятся на той же железке, что и база, А что с чем тогда синхронизировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 13:08 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Petro123Ролг Хупинпропущено... Могут и локальн, но в 99% случаев на шаре. И шара замапплена всегда на одну букву? Весело у вас там. Когда 5 юзверей будут шару одну проверять. шар ~десяток, букв нет. Да, возможно и такое, хотя маловероятно, что одновременно, операция не часто делается. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 14:47 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
13thА какая СУБД и где хранятся файлы? Если MS SQL + файлы хранятся на той же железке, что и база, то можно сделать xp (extended stored proc), и сразу получать ответ. На разных, SQL Server отдельно, шары для файлов отдельно. Кстати, приблизительно так и работало через XP, затем SQL CLR, как раз избавляюсь от них, такие времена Сервер в тучах не допускает использование такого типа процедур.Приходится таку. обработку переносить на клиента ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 14:49 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Ролг Хупин, Вам нужно вместо мозгового штурма полностью переписать проект. Или искать, что конкретно делает цикл 1000 пять часов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 15:03 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Ролг Хупин, три вопроса: 1. набор каталогов, в которых хранятся файлы, задан жёстко? (допустим, чётко заданный список локаций \\HOST1\Images\*;\\HOST2\Images\*;\\HOST1\Images\* или не известен заранее (локации произвольно добавляются и удаляются)? 2. какие свойства набора файлов? Уже понятно, что они могут удаляться независимо от БД. Могут ли они появляться (возвращаться обратно после удаления) независимо от БД? И надо ли будет после этого удалённый файл помечать как восстановившийся? 3. какая ставится цель? Если минимальное время отклика - то одно решение. Если максимально актуальная информация - то другое. Если хочется в режиме реального времени видеть процесс удаления файлов на нескольких сетевых локациях - третье. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 15:36 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
13thРолг Хупин, три вопроса: 1. набор каталогов, в которых хранятся файлы, задан жёстко? (допустим, чётко заданный список локаций \\HOST1\Images\*;\\HOST2\Images\*;\\HOST1\Images\* или не известен заранее (локации произвольно добавляются и удаляются)? 2. какие свойства набора файлов? Уже понятно, что они могут удаляться независимо от БД. Могут ли они появляться (возвращаться обратно после удаления) независимо от БД? И надо ли будет после этого удалённый файл помечать как восстановившийся? 3. какая ставится цель? Если минимальное время отклика - то одно решение. Если максимально актуальная информация - то другое. Если хочется в режиме реального времени видеть процесс удаления файлов на нескольких сетевых локациях - третье. 1. набор шар стабилен, но может меняться юзером. Т.е. есть таблица со списком шар, куда юзер пишет свои файлы клиенсктим приложением. Он может добавить новую шару или удалить старую. 2. Нежелательно, но могут появляться, удаляться, анду-иться вне связи с БД, потому, собственно и задачи возникли: 3. ...определить целостность наборов в базе и реального на диске. Реальное время не нужно, "разумное" хотелось бы для проверки соответствия. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 16:12 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Petro123Ролг Хупин, Вам нужно вместо мозгового штурма полностью переписать проект. Или искать, что конкретно делает цикл 1000 пять часов. 1. не получится, имеем то, что имеем. 2. да, пытаюсь. Но кроме всего хотелось бы саму логику оптимизировать ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 16:13 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Ролг Хупинда, пытаюсь. Напишите за 10 мин. Цикл и выложите время. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 16:27 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Ролг Хупин, лично я бы предложил такое решение: Разнести чтение файловой системы и построение таблицы наличия файлов. Один из вариантов решения: 1. раз в минуту запускается скрипт, который по набору папок хранения делает снимок файловой системы (да хоть бы команду dir /s /b в файл). Результаты загружаются в БД (bulkimp). 2. при вызове списка файла делается outer join списка файлов в БД на список файлов во всех папках. Там где получаем NULL справа - файл отсутствует. Понятно, что то не окончательный вариант, тут полно вариантов для оптимизации (первое что приходит в голову - сравнивать не строки а хэши), но это, повторюсь, детали. Основная мысль: Разнести чтение и построение. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 17:20 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
Petro12313thЕсли MS SQL + файлы хранятся на той же железке, что и база, А что с чем тогда синхронизировать? Список файлов в файловой системе со списком файлов в БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 17:23 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
13th1. раз в минуту запускается скрипт, который по набору папок хранения делает снимок файловой системы (да хоть бы команду dir /s /b в файл). Результаты загружаются в БД (bulkimp). п.1 - тоже не обязательно скрипт ОС, это может быть и SQL-скрипт, запускемый по таймеру. Сделать курсор оп шарам, для каждого сделать cmd_exec 'dir /s /b \\host1\images\folder\', результаты объединить. Нутыпонел. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 17:27 |
|
Мозгоштурм: как обработать быстрее?
|
|||
---|---|---|---|
#18+
13th13th1. раз в минуту запускается скрипт, который по набору папок хранения делает снимок файловой системы (да хоть бы команду dir /s /b в файл). Результаты загружаются в БД (bulkimp). п.1 - тоже не обязательно скрипт ОС, это может быть и SQL-скрипт, запускемый по таймеру. Сделать курсор оп шарам, для каждого сделать cmd_exec 'dir /s /b \\host1\images\folder\' , результаты объединить. Нутыпонел. Нельзя, база может быть в туче ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 17:28 |
|
|
start [/forum/topic.php?fid=20&msg=39562745&tid=1399582]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 298ms |
total: | 421ms |
0 / 0 |