Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
softrunner
Posts: 6
Joined: Sat 05 Mar, 2016 13:46

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by softrunner » Thu 24 Mar, 2016 19:13

Хотелось бы, чтобы была возможность задавать маски так:
*.[7,]z["ip",]
т.е. подходят *.z, *.7z, *.zip, *.7zip
В текущей реализации нельзя задавать пустой символ и последовательности символов вроде "ip", вернее можно, но только через regexp, что не так наглядно + не понятно, насколько regexp быстры при большом количестве масок.

Ещё, как я понял, Far сначала раскрашивает все файлы в папке, и лишь потом выводит на экран те файлы, которые влезают, что медленно, если много файлов (напр., для папки system32). Правильней раскрасить лишь то, что должно быть отображено и сразу вывести на экран, затем раскрасить то, что может быть отображено через кнопки-стрелки и End, PgUp, PgDown, а остальное либо не трогать (и раскрашивать лишь когда потребуется выводить на экран), либо докрасить в фоне.

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by NightRoman » Thu 24 Mar, 2016 19:22

Вроде маски в Фаре поддерживают регулярные выражения. Посмотрите хелп. Разве маски для раскраски отличаются?

User avatar
DrKnS
Posts: 4582
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 116 times
Contact:

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by DrKnS » Thu 24 Mar, 2016 19:28

softrunner wrote: не понятно, насколько regexp быстры при большом количестве масок
Ну так померяйте и сравните.

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by NightRoman » Thu 24 Mar, 2016 19:30

Ах, так это регеспы не нравятся человеку? Хм, ясно.

User avatar
HaRT
Moderator
Posts: 8048
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by HaRT » Thu 24 Mar, 2016 19:41

softrunner wrote: Far сначала раскрашивает все файлы в папке, и лишь потом выводит на экран те файлы, которые влезают
На каком основании Вы сделали такой вывод?
Фар есть инструмент, а не нянька. © 2009 DrKnS

2useven10
Posts: 2983
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 80 times

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by 2useven10 » Thu 24 Mar, 2016 22:15

softrunner wrote: *.[7,]z["ip",]
/.+\.7?z(ip)?/ Хрен редьки не слаще. При этом первый надо ещё специфицировать, в отличии от регулярных выражений.

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by NightRoman » Fri 25 Mar, 2016 07:22

.+ в начале, наверное, лишнее. А в конце надо добавить $.

softrunner
Posts: 6
Joined: Sat 05 Mar, 2016 13:46

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by softrunner » Fri 25 Mar, 2016 10:00

undefined wrote: На каком основании Вы сделали такой вывод?
Потому что если задано много масок, то скорость вывода на экран списка файлов панели при открытии каталога зависит от количества элементов в этом каталоге. Сделайте больше 100 масок и зайдите в system32 - перед выводом содержимого панели будет долго тупить. Зачем определять цвета для файлов, которые всё равно не будут выведены на экран?
undefined wrote: Хрен редьки не слаще.
Как раз таки первый вариант лучше читается. Что значит специфицировать? Задача из первого поста трудно реализуема?

Я не против regexp, но если можно писать *.[7bg]zip, то почему нельзя *.[7bg,]zip ?

softrunner
Posts: 6
Joined: Sat 05 Mar, 2016 13:46

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by softrunner » Fri 25 Mar, 2016 10:24

Кстати, в конце регулярных выражений нужно ещё и i добавлять, чтобы не учитывался регистр, а в стандартных масках регистр и так не учитывается.

User avatar
HaRT
Moderator
Posts: 8048
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by HaRT » Fri 25 Mar, 2016 12:35

softrunner wrote: почему нельзя *.[7bg,]zip ?
Отчего же нельзя?! Можно — тогда под эту маску подойдёт [i][b]foo.,zip[/b][/i]
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
HaRT
Moderator
Posts: 8048
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

Post by HaRT » Fri 25 Mar, 2016 12:38

softrunner wrote: если задано много масок, то скорость вывода на экран списка файлов панели при открытии каталога зависит от количества элементов в этом каталоге
Если чётко опишете методику замеров и приведёте два заметно различающихся результата для различающегося количества файлов, то шансы на исправление повысятся.
Фар есть инструмент, а не нянька. © 2009 DrKnS

softrunner
Posts: 6
Joined: Sat 05 Mar, 2016 13:46

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by softrunner » Fri 25 Mar, 2016 13:29

undefined wrote: foo.,zip
Это уже две маски, а в сложных вариантах их будет ещё больше. Если строить выражение вокруг ключевой фразы, такой как zip, то должна быть и возможность задания пустого символа.
undefined wrote: Если чётко опишете методику замеров
А что тут замерять? Достаточно создать и зайти в %SystemRoot%\System32 , а также в любую папку, где мало файлов.
Или, вместо System32, можно и позаходить в папки 100 и 1000. Разница будет очевидна, особенно на слабых процессорах.
Last edited by softrunner on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: [spoiler]

User avatar
HaRT
Moderator
Posts: 8048
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by HaRT » Fri 25 Mar, 2016 13:37

softrunner wrote: Это уже две маски
Вы не поняли. Я привёл одно имя файла, подходящее под предложенную Вами маску, а запятая — часть его расширения.
softrunner wrote: что тут замерять?
Я не зря сказал про чёткое — детальное и по шагам — описание методики замера и конкретные численные результаты (в миллисекундах или секундах). Без такого довода вряд ли кто-то заинтересуется. Вроде ж это Вы хотите, чтобы тут что-то улучшили?
Фар есть инструмент, а не нянька. © 2009 DrKnS

softrunner
Posts: 6
Joined: Sat 05 Mar, 2016 13:46

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by softrunner » Fri 25 Mar, 2016 18:06

undefined wrote: Я привёл одно имя файла, подходящее под предложенную Вами маску, а запятая — часть его расширения.
Чтобы foo.,zip попало под ту маску, запятую нужно брать в кавычки *.[7bg","]zip , т.е. запятая без кавычек здесь не проблема.
undefined wrote: Без такого довода вряд ли кто-то заинтересуется.
Вот реальные цифры:
На входе:
1) Процесоор AMD Athlon 64 X2 4800+
2) Windows 8.1 x32
3) Far 3.0 x32 4601
4) Включённая опция "Раскраска файлов" из меню "Параметры\Настройки панели"
5) Одна группа из 1000 простых масок вида *.1,*.2,*.3,*.4, ... ,*.1000 и соответствующий ей пункт в списке "Раскраска файлов и группы сортировки"
6) Четыре папки:
- папка со 100-ми файлами вида 1, 2, 3, 4, ... , 100
- папка с 1000-ю файлов вида 1, 2, 3, 4, ... , 1000
- папка с 5000-ми файлов вида 1, 2, 3, 4, ... , 5000
- папка с 10000-ми файлов вида 1, 2, 3, 4, ... , 10000

На выходе:
1) При заходе в папку со 100-ми файлами время отображения содержимого панели: без ощутимой задержки
2) При заходе в папку с 1000-ю файлов время отображения содержимого панели: с задержкой ~1 секунда
3) При заходе в папку с 5000-ю файлов время отображения содержимого панели: с задержкой ~5,5 секунд
4) При заходе в папку с 10000-ю файлов время отображения содержимого панели: с задержкой ~11,5 секунд

Если отключить опцию "Раскраска файлов", то для всех папок время отображения содержимого панели: без ощутимой задержки.

Если я захожу в папку с 1000-ю и более файлов, собираюсь ли я выводить их все на панель? Скорее всего нет. Но при этом программа зачем-то определяет цвета отображения для всех файлов папки, тратя на это вычислительные ресурсы и время.

User avatar
DrKnS
Posts: 4582
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 116 times
Contact:

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by DrKnS » Fri 25 Mar, 2016 21:48

То, что чем больше групп и/или файлов, тем тормознее - как бы очевидно.
Посмотрим, что можно сделать.

User avatar
DrKnS
Posts: 4582
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 116 times
Contact:

Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов

Post by DrKnS » Sat 26 Mar, 2016 00:06

В 4602 будет раскрашиваться по мере необходимости.

Post Reply

Return to “Предложения и идеи”