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

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

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

Post by softrunner »

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

Ещё, как я понял, Far сначала раскрашивает все файлы в папке, и лишь потом выводит на экран те файлы, которые влезают, что медленно, если много файлов (напр., для папки system32). Правильней раскрасить лишь то, что должно быть отображено и сразу вывести на экран, затем раскрасить то, что может быть отображено через кнопки-стрелки и End, PgUp, PgDown, а остальное либо не трогать (и раскрашивать лишь когда потребуется выводить на экран), либо докрасить в фоне.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Вроде маски в Фаре поддерживают регулярные выражения. Посмотрите хелп. Разве маски для раскраски отличаются?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

softrunner wrote: не понятно, насколько regexp быстры при большом количестве масок
Ну так померяйте и сравните.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Ах, так это регеспы не нравятся человеку? Хм, ясно.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

softrunner wrote: Far сначала раскрашивает все файлы в папке, и лишь потом выводит на экран те файлы, которые влезают
На каком основании Вы сделали такой вывод?
Фар есть инструмент, а не нянька. © 2009 DrKnS
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

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

Post by 2useven10 »

softrunner wrote: *.[7,]z["ip",]
/.+\.7?z(ip)?/ Хрен редьки не слаще. При этом первый надо ещё специфицировать, в отличии от регулярных выражений.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

.+ в начале, наверное, лишнее. А в конце надо добавить $.
softrunner
Posts: 6
Joined: Sat 05 Mar, 2016 13:46

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

Post by softrunner »

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

Я не против regexp, но если можно писать *.[7bg]zip, то почему нельзя *.[7bg,]zip ?
softrunner
Posts: 6
Joined: Sat 05 Mar, 2016 13:46

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

Post by softrunner »

Кстати, в конце регулярных выражений нужно ещё и i добавлять, чтобы не учитывался регистр, а в стандартных масках регистр и так не учитывается.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

softrunner wrote: почему нельзя *.[7bg,]zip ?
Отчего же нельзя?! Можно — тогда под эту маску подойдёт [i][b]foo.,zip[/b][/i]
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Post by HaRT »

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

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

Post by softrunner »

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: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

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

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

Post by softrunner »

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: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

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

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