AZJIO |
|
Темы:
29
Сообщения:
447
Участник с: 05 января 2021
|
vasek Сделал, если сортировку не использовать то у меня 37 000 файлов за 250 мсек, то есть мгновенно. Если в вывод добавить дату то, 420мсек, ещё и с размером 530мсек. |
AZJIO |
|
Темы:
29
Сообщения:
447
Участник с: 05 января 2021
|
vasek Некоторые вещи зависят от языка. Я думаю обращение к файлам происходит вызовом системных функций, потому что они одинаковы, открывают дескриптор поиска и начинают запрашивать следующий файл, перемещая указатель в поисковом дескрипторе. Но конечно зависит оптимизация алгоритма. Например в архиве есть "старая версия" - работает быстрее, потому что она только выводит данные в строку, а метод копирования максимально снижен по расходам - даётся указатель на строку и данные копируются в памяти по указателю. Новый код там генерируются переменные, а это внутреннее обслуживание переменной, выделение/перевыделение памяти, что тормозит выполнение, а с учётом разрезания/склеивания элементов формируя заданный вывод, конечно несёт в себе расходы. И ранее в AutoIt3 аналогичной проге я делал метод вывода списком и обрабатывал его одним регулярным выражением за один проход, этим я снизил скорость с 10 минут до 4 минут при обсчёте целого диска. Измерение проводится после первого запроса, потому что данные кешируются и первый запрос всегда работает медленнее, так как заново пишет кеш, а второй тест определяет уже скорость именно работы алгоритма, т.е. скорость доступа жёсткого диска уже практически не влияет на результат, так как выдаёт один и тот же показатель. В PureBasic как и в других языках нормально получать дескриптор на скомпилированное регулярное выражение, поэтому я могу использовать его повторно не тратя время на компиляцию, но думаю всё равно за один проход будет быстрее. Так что я пока не тестировал такой вариант, это уже подгоняется под прогу, если нужно выдать данные в конце, или же выдавать данные в процессе... Ещё момент, например FSearch и Everything при запуске создают базу данных файловой системы, и работать с уже полученным списком гораздо быстрее чем каждый раз его запрашивать у жёсткого диска. |
AZJIO |
|
Темы:
29
Сообщения:
447
Участник с: 05 января 2021
|
vasek Концепция AutoIt3, на которой написана прога - воспринимать любые данные как строку, это у других языков null - конец строки (не у всех, у |
AZJIO |
|
Темы:
29
Сообщения:
447
Участник с: 05 января 2021
|
Из лучшего на винде "Beyond Compare 3", но платная, сравнивает и бинарные при чём не сбивается в абсурд на первом несовпадениии, а умеет вычленять блоки, и изначально у ней удобная подсветка, практически из коробки работает на ура и сравнение фото показывает маску разности. Больше всего конечно движок поиска в проге, а уж гуи для презентации, уже дальше только придумывать куда его воткнуть, например у меня для винды есть проги синхронизации, прога поиск файлов по списку, переименование, поиск дубликатов... в них одна и та же библиотека поиска файлов. И кстати я пробовал у меня и под линуксом на Wine запустилось и выдал список и сортировка работает и формирование списка. vasek поиск в бинарникахдля винды у меня тоже работает и для бинарников (и под wine) jim945 Поэтому я и пытался добиться примеров использования.надо учесть что когда то я активно занимался одними вещами, теперь другими, многое из того что я сделал не пользуюсь. Но буквально вчера мне пишут "дай исходник". И скачивание файлов пока продолжается. |
AZJIO |
|
Темы:
29
Сообщения:
447
Участник с: 05 января 2021
|
ну и лучше оболочку для find сделать? Чтобы привычней было? У GUI красота в том, что не надо помнить параметры, ставим только галочки в нужных чекбоксам и т.д., сохранять настройки, сохранять настройки в шаблоны. |
AZJIO |
|
Темы:
29
Сообщения:
447
Участник с: 05 января 2021
|
nafanjaИз-за того что винда поддерживает однобайтовые, а у них концепция максимальной совместимости, то остаётся принять что это будет долго. nafanjaя его изучал |
AZJIO |
|
Темы:
29
Сообщения:
447
Участник с: 05 января 2021
|
нет не find это начало моей виндовой проги на новом языке, на новой системе. использование: можно найти самые большие файлы, хотя я пользуюсь другими программами, при падении системы, подозрения вируса могу найти самые новые файлы. Могу просто найти файлы используя регулярное выражение. Могу сравнить две файловых системы, например автор выложил LiveCD новую, могу получить список файлов старой и новой и сравнить сначала по-файлово, потом с учётом размеров, хотя для этого также существуют проги. Старая виндовая прописывалась в контекстное меню, поэтому я мог просто быстро получить список файлов в папке, если просят на форуме. Раньше да и сейчас я не понимал цикл в консоли, поэтому мне проще было получить список файлов, учитывая что можно сформировать полностью команду, и получается пакетная обработка файлов, или сформировать html-код. То есть используя как инструмент сформировать нужное. Также в виндовой версии можно список просматривать как файловую систему, даже если компа нет под рукой. Изначально я хотел сделать другую свою виндовую программу по поиску и замене текста, но на текущем языке мне пока не удаётся решить проблему автоматического распознавания кодировки и замены в нужной кодировке, в винде 1251 работает на уровне системы, в Linux не работает, нужна либо gtk3-функция, либо таблица сопоставления, в Geany же есть возможность. Ну в общем пока не получилось то что хотел, взялся за эту. А так конечно незаменима (поиск/замена), я даже в Linux ей пользуюсь постоянно. |
AZJIO |
|
Темы:
29
Сообщения:
447
Участник с: 05 января 2021
|
В архиве исходник (всегда). Примеры могу привести, но это не является аргументом, так как ответ будет "а зачем мне это". Скачают кому это нужно. Собирается PureBasic`ом. |
AZJIO |
|
Темы:
29
Сообщения:
447
Участник с: 05 января 2021
|
Создать список файлов FileSizesList - иной вариант. Скачать: яндекс upload.ee ![]() Назначение Получить форматированный список с выбранной информацией, сортировкой. Использование
|
AZJIO |
|
Темы:
29
Сообщения:
447
Участник с: 05 января 2021
|
Зарегистрировался в AUR, начал изучать тему и пришёл к выводу, что выложить туда не удастся. Бинарники не принимаются, а сборка происходит на любых языках, но явно не на PureBasic. |