powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Мозгоштурм: как обработать быстрее?
25 сообщений из 53, страница 2 из 3
Мозгоштурм: как обработать быстрее?
    #39561851
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Алексей К,
Говорит что список машины может устареть)А не надо список нигде хранить. Получать списки "на лету". В наш "век гигабайтов и гигагерцев" обработать пару миллионов строк вроде как не проблема.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39561859
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,
+1
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39561875
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинskyANAпропущено...

Несколько часов у юзера? Сомневаюсь, что у отдельного юзера миллионы файлов. Смотрите на чём конкретно тормозит Ваша обработка.

LINQ используете?

Конечно, миллионов файлов нет, тыщи, LINQ тоже нет. Читается список в List<string>, затем суётся в DGV , затем проверяется и формируется целевой список несуществующих во втором DGV. Код написан 300 лет назад
ИМХО очевидно что пора переписать "читается... затем... затем... и" в один проход.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39561877
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TPetro123пропущено...

Головка HDD одна ))).
Он же не файлы будет читать, а содержимое папок. Виндовс эту инфу кэширует.
Хм, как я понял проверяется существование файла, то есть под капотом GetFileAttributes .
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39561878
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

кстати, а где файлы хранятся? На локальном диске, или на сетевой шаре?
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39561879
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинLINQ тоже нет.Это главное, от LINQ все беды!
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39561885
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANADima Tпропущено...

Он же не файлы будет читать, а содержимое папок. Виндовс эту инфу кэширует.
Хм, как я понял проверяется существование файла, то есть под капотом GetFileAttributes .
В случае с NTFS вся эта инфа хранится в MFT , которая по сути просто файл, т.е. может быть закэширована как любой другой файл.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39561995
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

Очевидно что если указан путь
x:\a\b\c\d\...\x\y\z.dat
но путь обрывается на x:\a\b\c
то можно не проверять все пути которые так начинаются.

Следователно:
1. сортитуем без учёта регистра
2. проверяем последовательно на наличие файла.
3. При отсутсвии файла находим кротчайщий путь который не сушествует.
все последуйюшие файлы кототрые начинаются с указанного пути сразу относим в список не сушествуюших.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562005
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на счет кеширования , легко убедиться в её работе.
наберите команду в консоли
dir \
dir notepad.exe /s /b /a
дождитесь окончания и снова
dir notepad.exe /s /b /a

2 раз очевидно, что поиск идет через кеш.

но нафига все эти геморои, нельзя просто использовать
PathFileExists ?
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562068
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAРолг Хупин,

кстати, а где файлы хранятся? На локальном диске, или на сетевой шаре?

Могут и локальн, но в 99% случаев на шаре.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562089
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинskyANAРолг Хупин,

кстати, а где файлы хранятся? На локальном диске, или на сетевой шаре?

Могут и локальн, но в 99% случаев на шаре.
И шара замапплена всегда на одну букву?
Весело у вас там. Когда 5 юзверей будут шару одну проверять.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562488
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А какая СУБД и где хранятся файлы?
Если MS SQL + файлы хранятся на той же железке, что и база, то можно сделать xp (extended stored proc), и сразу получать ответ.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562506
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13thЕсли MS SQL + файлы хранятся на той же железке, что и база,
А что с чем тогда синхронизировать?
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562578
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Ролг Хупинпропущено...


Могут и локальн, но в 99% случаев на шаре.
И шара замапплена всегда на одну букву?
Весело у вас там. Когда 5 юзверей будут шару одну проверять.

шар ~десяток, букв нет. Да, возможно и такое, хотя маловероятно, что одновременно, операция не часто делается.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562581
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13thА какая СУБД и где хранятся файлы?
Если MS SQL + файлы хранятся на той же железке, что и база, то можно сделать xp (extended stored proc), и сразу получать ответ.


На разных, SQL Server отдельно, шары для файлов отдельно.

Кстати, приблизительно так и работало через XP, затем SQL CLR, как раз избавляюсь от них, такие времена
Сервер в тучах не допускает использование такого типа процедур.Приходится таку. обработку переносить на клиента
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562592
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,
Вам нужно вместо мозгового штурма полностью переписать проект.
Или искать, что конкретно делает цикл 1000 пять часов.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562626
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин, три вопроса:
1. набор каталогов, в которых хранятся файлы, задан жёстко? (допустим, чётко заданный список локаций \\HOST1\Images\*;\\HOST2\Images\*;\\HOST1\Images\* или не известен заранее (локации произвольно добавляются и удаляются)?
2. какие свойства набора файлов? Уже понятно, что они могут удаляться независимо от БД. Могут ли они появляться (возвращаться обратно после удаления) независимо от БД? И надо ли будет после этого удалённый файл помечать как восстановившийся?
3. какая ставится цель? Если минимальное время отклика - то одно решение. Если максимально актуальная информация - то другое. Если хочется в режиме реального времени видеть процесс удаления файлов на нескольких сетевых локациях - третье.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562660
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13thРолг Хупин, три вопроса:
1. набор каталогов, в которых хранятся файлы, задан жёстко? (допустим, чётко заданный список локаций \\HOST1\Images\*;\\HOST2\Images\*;\\HOST1\Images\* или не известен заранее (локации произвольно добавляются и удаляются)?
2. какие свойства набора файлов? Уже понятно, что они могут удаляться независимо от БД. Могут ли они появляться (возвращаться обратно после удаления) независимо от БД? И надо ли будет после этого удалённый файл помечать как восстановившийся?
3. какая ставится цель? Если минимальное время отклика - то одно решение. Если максимально актуальная информация - то другое. Если хочется в режиме реального времени видеть процесс удаления файлов на нескольких сетевых локациях - третье.


1. набор шар стабилен, но может меняться юзером. Т.е. есть таблица со списком шар, куда юзер пишет свои файлы клиенсктим приложением. Он может добавить новую шару или удалить старую.

2. Нежелательно, но могут появляться, удаляться, анду-иться вне связи с БД, потому, собственно и задачи возникли:

3. ...определить целостность наборов в базе и реального на диске.
Реальное время не нужно, "разумное" хотелось бы для проверки соответствия.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562662
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Ролг Хупин,
Вам нужно вместо мозгового штурма полностью переписать проект.
Или искать, что конкретно делает цикл 1000 пять часов.

1. не получится, имеем то, что имеем.
2. да, пытаюсь. Но кроме всего хотелось бы саму логику оптимизировать
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562671
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупинда, пытаюсь.
Напишите за 10 мин. Цикл и выложите время.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562740
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин, лично я бы предложил такое решение:
Разнести чтение файловой системы и построение таблицы наличия файлов.

Один из вариантов решения:
1. раз в минуту запускается скрипт, который по набору папок хранения делает снимок файловой системы (да хоть бы команду dir /s /b в файл). Результаты загружаются в БД (bulkimp).
2. при вызове списка файла делается outer join списка файлов в БД на список файлов во всех папках. Там где получаем NULL справа - файл отсутствует.

Понятно, что то не окончательный вариант, тут полно вариантов для оптимизации (первое что приходит в голову - сравнивать не строки а хэши), но это, повторюсь, детали. Основная мысль: Разнести чтение и построение.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562745
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro12313thЕсли MS SQL + файлы хранятся на той же железке, что и база,
А что с чем тогда синхронизировать?
Список файлов в файловой системе со списком файлов в БД.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562750
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
13th1. раз в минуту запускается скрипт, который по набору папок хранения делает снимок файловой системы (да хоть бы команду dir /s /b в файл). Результаты загружаются в БД (bulkimp).
п.1 - тоже не обязательно скрипт ОС, это может быть и SQL-скрипт, запускемый по таймеру. Сделать курсор оп шарам, для каждого сделать cmd_exec 'dir /s /b \\host1\images\folder\', результаты объединить. Нутыпонел.
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562753
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13th13th1. раз в минуту запускается скрипт, который по набору папок хранения делает снимок файловой системы (да хоть бы команду dir /s /b в файл). Результаты загружаются в БД (bulkimp).
п.1 - тоже не обязательно скрипт ОС, это может быть и SQL-скрипт, запускемый по таймеру. Сделать курсор оп шарам, для каждого сделать cmd_exec 'dir /s /b \\host1\images\folder\' , результаты объединить. Нутыпонел.

Нельзя, база может быть в туче
...
Рейтинг: 0 / 0
Мозгоштурм: как обработать быстрее?
    #39562774
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг ХупинНельзя, база может быть в туче
Это детали. Они все, так или иначе, обходятся.
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Мозгоштурм: как обработать быстрее?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]