Ru-Board.club
← Вернуться в раздел «Программы»

» Far Manager

Автор: VictorVG4
Дата сообщения: 11.05.2016 20:14
Angel_Ka

Видел. Ну, глюк №10 пусть они на кроликах до ума доведут, хотя я сомневаюсь что у этих студиозусов есть даже намёк на извилину. Раньше в войсках говорили "Замполит может лбом дот снести и нечего с ним не случится - ему партбилет мозги заменяет!", а у этих и его нет.
Автор: Angel_Ka
Дата сообщения: 11.05.2016 20:40
VictorVG4
Теперь наверное нужно отредактировать и Ваш пост, а то после того как я стёр следы глюков сайта со своего предыдущего поста люди могут не понять о чём Ваш пост в текущем виде.
Автор: VictorVG4
Дата сообщения: 11.05.2016 22:19
Angel_Ka

Мой - нейтральный, и так поймут.
Автор: Angel_Ka
Дата сообщения: 11.05.2016 23:25
Завершается создание макроса выявления на бранч-панели файлов с одинаковыми и похожими именами — Select Duplicates FileName in Branch panel (автор Alexyz21).

Этот макрос очень быстро находит и помечает файлы с полностью совпадающими именами, т.е. полные дубликаты, дубликаты с частично совпадающими именами от их начала и дубликаты с частично совпадающими именами от концов имён файлов.

Проверено, что в ветке (бранче) из 1.8 миллионов файлов, физически содержащихся в большом множестве разветвлённых папок, данный макрос находит и помечает дубликаты файлов быстрее чем за 15 секунд.

Тогда как одна из программ "с быстрым алгоритмом поиска" рекламируется следующим образом. "Начнётся поиск дубликатов. Это может занять довольно много времени. У меня на работе на ... было 1.35 миллиона файлов. Поиск занял чуть больше 20 часов" — сказано с восторгом.

Высокая скорость работы макроса на Временной панели обеспечивается за счёт ресурсов Фара и его плагинов, главным образом за счёт постоянной оптимизации кода, обеспечения возможности создания мощных макросов на lua-платформе.

Вместе с тем, автор макроса полагает, что скорость его работы вероятно можно ещё увеличить. И может быть существенно. "В коде есть один потенциально тормозной момент, причём в цикле по всем элементам панели – ToWChar(panel.GetPanelItem(nil,1,i).FileName)" — утверждает автор.

"В этой маленькой строчке сокрыты (возможно большие, возможно не столь уж и большие) тормоза – мы получаем FullPath в Utf8, затем конвертируем его в Utf16, и получаем на эту строку указатель, чтобы можно было работать с юникодными функциями сравнения. И это помимо того, что panel.GetPanelItem(nil,1,i).FileName это конструкция LuaMacro, который сам обращается к FAR API. Потенциально быстрее было бы обращаться из скрипта к FAR API, получая указатели на FullPath в Utf16 напрямую".

"Но на практике кто его знает, будет выигрыш или нет. Однако, когда операция выполняется 1.8 миллиона раз (а существуют наборы файлов и на порядок более объёмные), то, вероятно, надо думать об оптимизации крепко" — так считает автор макроса.

Поэтому я, в свою очередь, как непосредственно заинтересованный в такой оптимизации форумчанин, обращаюсь ко всем знатокам в надежде на то, что кто-то из круга любителей Фара заинтересуется и найдёт возможность помочь оптимизировать означенный код или укажет какой-то обходной вариант.
Автор: Alexyz21
Дата сообщения: 12.05.2016 00:30
Angel_Ka

Цитата:
Начнётся поиск дубликатов. Это может занять довольно много времени. У меня на работе на ... было 1.35 миллиона файлов. Поиск занял чуть больше 20 часов" — сказано с восторгом.

Имхо автор вёл речь именно о дубликатах файлов, а не их имён, а это 2 большие разницы.
И с воззванием затея по меньшей мере наивная - все, кто хотел видеть, уже давно увидели и все кто хотел помочь - уже помогли.
Автор: Angel_Ka
Дата сообщения: 12.05.2016 05:27
Alexyz21

Цитата:
Имхо автор вёл речь именно о дубликатах файлов, а не их имён, а это 2 большие разницы.
Скорее всего Вы правы. Однако если Вы в макрос Select Duplicates FileName in Branch panel добавите ещё в критерии размер файлов и их атрибуты, то навряд ли скорость его работы упадёт с секунд до часов.

Вместе с тем своим резонным замечанием Вы навели меня на мысль о том, что в проблеме ускорения работы с бранчами лимитирующим звеном по существу является процесс формирования самого бранча. Ведь для того, чтобы применить Ваш замечательный макрос, который в бранче из 1,8 миллионов файлов выявляет файлы с дублирующими именами за 15 секунд, нужно ещё сформировать сам бранч, а на это уходит в 10 раз больше времени.

А гуивая программа, судя по всему, тратит на это ещё больше времени, вероятно, в разы больше. Ну да Бог с ней, и удачи её разработчикам — чем больше хороших программ, тем лучше. Нам то вот как поступить, чтобы оптимизировать обработку бранчей? Вот ведь задача.

Автор: Alexyz21
Дата сообщения: 12.05.2016 07:46
Angel_Ka
Дело не в том, что программа гуёвая, а в том насколько И программа поиска дубликатов файлов читала содержимое ВСЕХ файлов, хэшировала их, и попутно сравнивала каждый новый хэш с уже имеющимися на тот момент, а после получения хэшей всех файлов, сравнила каждый хэш в списке с хэшами под ним. И на всю эту работу и ушло 20 часов. Так что это 2 огромные разницы, в том числе и по сравнению с получением атрибутов файлов.
Автор: shmuz2
Дата сообщения: 12.05.2016 10:27

Цитата:
программа поиска дубликатов файлов читала содержимое ВСЕХ файлов, хэшировала их, и попутно сравнивала каждый новый хэш с уже имеющимися на тот момент

Крайне неэффективный алгоритм.
Прежде всего надо отобрать группы файлов одинакового размера, только в этих группах могут быть дубликаты.
Сразу хэшировать файлы целиком также неэффективно. Например 2 гигабайтных файла могут отличаться уже в первом килобайте, зачем же их хэшировать полностью.
Автор: Alexyz21
Дата сообщения: 12.05.2016 10:49
согласен
Автор: Angel_Ka
Дата сообщения: 15.05.2016 21:51
Уважаемый VictorVG4!

Цитата:
zg 15.05.2016 17:37:36 +0200 - build 4673

1. убрана блокировка перерисовки окон.

Если можно, сделайте, пожалуйста, сборки оперативно. Не терпится посмотреть.

СПАСИБО!
Автор: skipik001
Дата сообщения: 16.05.2016 00:36
Angel_Ka
Виктор на дачу собирался. Скорее всего, ещё не приехал. Я собрал для вас x86 и x64. Скачать можно здесь.
Автор: Angel_Ka
Дата сообщения: 16.05.2016 02:15
skipik001

Цитата:
Я собрал для вас x86 и x64.

БОЛЬШОЕ СПАСИБО!

Добавлено:
Вы очень помогли! Опробование на нескольких запусках Вашей сборки показало, что определённый глюк, проявлявшийся в 4671 и 4672 в нативной и плагиновых временных панелях, теперь, т.е. в 4674, не проявляется!
Автор: MARSIANIN
Дата сообщения: 16.05.2016 08:58
Последние несколько дней минимум на 2-х компах автоматически удаляется, без предупреждения
Far.exe, судя по всему пришло какое-то обновление на windows 7 64bit или Micrоsoft Security Essentials (MSSE).
Это только у меня такая засада?

P.S. FAR 3.0 build 4545 x64
Автор: wseventeen
Дата сообщения: 16.05.2016 12:52
MARSIANIN
http://forum.farmanager.com/viewtopic.php?f=1&t=1234
http://bugs.farmanager.com/view.php?id=3236
Автор: MARSIANIN
Дата сообщения: 16.05.2016 13:13
Про вирус понятно гон, но делать что?
Пока могу только в исключения антивируса добавить.
Кто-нибудь пере компилируйте FAR чтоб сигнатура
изменилась и антивирус не убивал.
Автор: Benchmark
Дата сообщения: 16.05.2016 15:22
MARSIANIN

Цитата:
Про вирус понятно гон, но делать что?

Самое простое - поставить текущую ночную сборку, в которой антивирусы не видят ничего плохого.

Единственное, рекомендую взять из стабильной 4545 плагин NetBox. В последних сборках он "поломан" и чинить его пока никто не собирается.
Автор: wseventeen
Дата сообщения: 16.05.2016 17:17

Цитата:
Про вирус понятно гон, но делать что?

Обновить антивирус, похоже он уже исправился...
Автор: MARSIANIN
Дата сообщения: 16.05.2016 19:34

Цитата:
Обновить антивирус, похоже он уже исправился...

Спасибо, обновил MSSE, вручную проверил каталог с FAR,
вроде не все нормально. Очередной косяк от MS исправлен
Автор: Alexyz21
Дата сообщения: 17.05.2016 12:44
zg 15.05.2016 17:37:36 +0200 - build 4673
1. убрана блокировка перерисовки окон.

Привело к 2-кратному увеличению времени замены в редакторе (батчи RESearch).
Автор: Xrobak
Дата сообщения: 17.05.2016 15:49
Far 3.0.4545 x64, ConEmu 150813g - украинская буква і отображается знаком вопроса. Думал что в ФАРе уже давно решили эту проблему, но похоже что это не так. По старинке это решалось переключением шрифта на Lucida Console, но может есть иное решение?
Автор: Wave_Blessed
Дата сообщения: 17.05.2016 17:23

Цитата:
Единственное, рекомендую взять из стабильной 4545 плагин NetBox. В последних сборках он "поломан" и чинить его пока никто не собирается.

А что именно поломано? Не удивляюсь, ибо за лет 17 весь фар и все плагины у меня не глючили столько, сколько один netbox. Но вот какая версия нетбокса более-менее беспроблемная — вопрос остаётся открытым.
Автор: Benchmark
Дата сообщения: 17.05.2016 17:54
Wave_Blessed

Цитата:
А что именно поломано?

Да хотя бы элементарно вбиваем ftp-адрес в командной строке и получаем ошибку вместо перехода на фтп.
Или примеры незакрытых багов с мантиса:
- "Netbox роняет Фар при попытке получить информацию о занятом месте на удалённом хосте"
- "При обновлении с предыдущих версий все данные пропадают"
и т.д.

Автор плагин забросил где-то с сентября прошлого года. Причём главная проблема в том, что плагин входит в набор стандартных. И это всё попадает в релизную версию. Условно релизную, конечно, но тем не менее.

Xrobak

Цитата:
По старинке это решалось переключением шрифта на Lucida Console, но может есть иное решение?

Есть. Называется ConEmu. Очень рекомендую.
Автор: VictorVG4
Дата сообщения: 17.05.2016 19:32
Benchmark

Цитата:
Автор плагин забросил где-то с сентября прошлого года. Причём главная проблема в том, что плагин входит в набор стандартных. И это всё попадает в релизную версию. Условно релизную, конечно, но тем не менее.

Чтобы закрыть на мантисе баг нужно подтверждение от его создателя. По конкретным багам:

0003210: Netbox роняет Фар при попытке получить информацию о занятом месте на удалённом хосте

создан 2016-04-04 19:22, последний коммит на гитхабе 18 марта 2016. Причины - оперативно устранённый баг сборки b432.

0003082: При обновлении с предыдущих версий все данные пропадают

создан 2015-09-03 23:11, Состояние - заброшен репортером: версии Far, NetBox, методики проверки ошибки не указаны - просто эмоции;

Среди других оставленных без рассмотрения багов что на мантисе, что на форуме, что на гитхабе подобных подавляющее большинство, хотя встречаются и хотелки вида "Сделать так как Я хочу и трава не расти!".

Отсюда вывод - плагин заброшен в сентябре 2015.
Автор: Benchmark
Дата сообщения: 17.05.2016 20:23
VictorVG4
На мантисе все баги Netbox за последние месяцы вообще не получили статус assigned. О чём говорить ?

Даже про баг с невозможностью зайти на фтп, просто введя адрес в командной строке. Ты сам отписывал автору. С тех пор прошло несколько месяцев. Что-то изменилось ? Хрен там.
Ещё вопросы ?


Цитата:
Отсюда вывод - плагин заброшен в сентябре 2015

Именно так. Заброшен.
Автор: VictorVG4
Дата сообщения: 17.05.2016 22:53
Benchmark

А почему-то помещённые мной на гитхаб ошибки исправно устраняются. Заброшен.
Автор: Benchmark
Дата сообщения: 17.05.2016 23:13
VictorVG4
На гитхабе версия двухмесячной давности. Как раз тот кривой промежуточный билд, который не должен попадать в релиз. Все упомянутые выше проблемы там присутствуют.
Автор: wseventeen
Дата сообщения: 17.05.2016 23:28
Xrobak

Цитата:
украинская буква і отображается знаком вопроса. Думал что в ФАРе уже давно решили эту проблему, но похоже что это не так.

Проблема решается использованием юникодного шрифта, хоть в чистой консоли, хоть с conemu.
Собственно с фар проблема давно (после его юникодизации) не связана.

Benchmark

Цитата:
Есть. Называется ConEmu. Очень рекомендую.

Странная рекомендация, если посмотреть на исходное сообщение.

Цитата:
Far 3.0.4545 x64, ConEmu 150813g...
Автор: VictorVG4
Дата сообщения: 18.05.2016 02:55
Benchmark

А кто мешает использовать например "некривую" версию двухлетней давности? У меня сейчас из нескольких сотен сессий забитых в версию 2.2.2.434 не работает одна - ftp.pcbsd.org, да и то поскольку iXsystems Inc. FTP отключила. На иных проблем нет, в том числе с ЯД. Я им сам ещё зимой отсылал настройки для NetBox и обещали выложить, но ...
Автор: Wave_Blessed
Дата сообщения: 18.05.2016 10:07

Цитата:
Да хотя бы элементарно вбиваем ftp-адрес в командной строке и получаем ошибку вместо перехода на фтп.
Или примеры незакрытых багов с мантиса:
- "Netbox роняет Фар при попытке получить информацию о занятом месте на удалённом хосте"
- "При обновлении с предыдущих версий все данные пропадают"
и т.д.
Почти все баги нетбокса, которые есть на мантисе, открыты ещё до FAR4545 (2016-02-10). Единственный более поздний — "Netbox роняет Фар при попытке получить информацию о занятом месте на удалённом хосте" — обнаружен позже выхода 4545, но не факт, что там не присутствует (лень проверять, тем более что на маленьких папках у меня не воспроизводится и в последнем билде).
И в то же время за последние месяцы несколько крашей нетбокса чинилось.

NetBox 2.2.1.433 05.03.2016
--------------------
* Bugfix: Issue #193: Crash when trying to enter !^! pattern into local custom command

Так что я и спрашиваю именно о регрессе последних билдов по сравнению с NetBox 2.1.45.426 09.02.2016.


Цитата:
Автор плагин забросил где-то с сентября прошлого года. Причём главная проблема в том, что плагин входит в набор стандартных. И это всё попадает в релизную версию. Условно релизную, конечно, но тем не менее.

Это да. Но альтернативой только ансишные фтп и winscp или вовсе использовать не фар.

VictorVG4, получается, что автор нетбокса реагирует только на гитхабе? Потому что в тему нетбокса на форуме, например, он заглядывает ну оооочень редко. А я в теме на форуме неоднократно отписывался о крэшах плагина. Да и вообще, заглянуть в ту ветку — куча сообщений о всяких проблемах.
Автор: VictorVG4
Дата сообщения: 18.05.2016 12:40
Wave_Blessed

Разумнее на гитхаб писать, хотя там сложнее отслеживать новые записи - нужно логонится, тогда получаешь уведомление о их появлении. Это особенность данного сервиса и о ней и другие авторы говорили.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: оффтоп


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.