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

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

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

Postby 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:

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

Postby NightRoman » Thu 24 Mar, 2016 19:22

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

User avatar
DrKnS
Posts: 4501
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 110 times
Contact:

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

Postby DrKnS » Thu 24 Mar, 2016 19:28

softrunner wrote:Source of the post не понятно, насколько 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:

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

Postby NightRoman » Thu 24 Mar, 2016 19:30

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

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

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

Postby HaRT » Thu 24 Mar, 2016 19:41

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

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

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

Postby 2useven10 » Thu 24 Mar, 2016 22:15

softrunner wrote:Source of the post *.[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:

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

Postby NightRoman » Fri 25 Mar, 2016 07:22

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

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

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

Postby softrunner » Fri 25 Mar, 2016 10:00

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

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

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

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

Postby softrunner » Fri 25 Mar, 2016 10:24

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

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

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

Postby HaRT » Fri 25 Mar, 2016 12:35

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

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

Postby HaRT » Fri 25 Mar, 2016 12:38

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

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

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

Postby softrunner » Fri 25 Mar, 2016 13:29

undefined wrote:Source of the post foo.,zip
Это уже две маски, а в сложных вариантах их будет ещё больше. Если строить выражение вокруг ключевой фразы, такой как zip, то должна быть и возможность задания пустого символа.
undefined wrote:Source of the post Если чётко опишете методику замеров
А что тут замерять? Достаточно создать и зайти в %SystemRoot%\System32 , а также в любую папку, где мало файлов.
Или, вместо System32, можно и позаходить в папки 100 и 1000. Разница будет очевидна, особенно на слабых процессорах.
Last edited by HaRT on Fri 25 Mar, 2016 13:34, edited 3 times in total.
Reason: [spoiler]

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

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

Postby HaRT » Fri 25 Mar, 2016 13:37

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

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

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

Postby softrunner » Fri 25 Mar, 2016 18:06

undefined wrote:Source of the post Я привёл одно имя файла, подходящее под предложенную Вами маску, а запятая — часть его расширения.
Чтобы foo.,zip попало под ту маску, запятую нужно брать в кавычки *.[7bg","]zip , т.е. запятая без кавычек здесь не проблема.
undefined wrote:Source of the post Без такого довода вряд ли кто-то заинтересуется.
Вот реальные цифры:
На входе:
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: 4501
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 110 times
Contact:

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

Postby DrKnS » Fri 25 Mar, 2016 21:48

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

User avatar
DrKnS
Posts: 4501
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 110 times
Contact:

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

Postby DrKnS » Sat 26 Mar, 2016 00:06

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


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

Who is online

Users browsing this forum: No registered users and 2 guests