Форум программистов, компьютерный форум, киберфорум
Софт: Текстовые редакторы
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 11
1

Как заставить Notepad++ работать быстрее?

18.05.2020, 02:47. Просмотров 518. Ответов 27

Всем Привет,

Использую Notepad++ для большого количества txt файлов, т.е. за раз около 100 файлов каждый примерно 50-150mb, в каждом файле 1,5-5 млн строк.
Каждый файл состоит из похожих 3 строк:
Pattern: 1
Address: PBAesScHhcoRDV6iasyJ5yzXxs9P8z sL3
Privkey: Rjn8S7o7mykp9yUtLi8Y7kgHXSDFpy wEXUEcKq7vRxL9mdWTn
редактирование заключается в удалении "Pattern: 1", "Address: ", "Privkey: "
в самом редакторе в поиске "Найти в файлах" удаляю сразу во всех файлах, то что выше в кавычках, то есть просто замена на пустое поле(не пробел) во всех файлах.

Проблема в том что это происходит медленно, процессор загружен всего на 8-15% и ссд 2-20mb в секунду, в диспетчере и в Aida64 видно что отработка идёт на одном ядре процессора, остальные простаивают, из-за этого много времени занимает удаление не нужных слов из всех файлов.

Пробовал другие редакторы(SkimEdit, Textex и несколько других), они не умеют сразу всю папку с кучей файлов редактировать.

как сделать так, чтобы Notepad++ использовал все имеющиеся вычислительные ресурсы?
как заставить его работать быстрее?
Может есть другой редактор в котором можно сразу 100 файлов редактировать?

Ещё вопрос, как удалить всю строку "Pattern: 1", что нужно в поле "Заменить на:" прописать?

Версия Notepad++ 7.8.6 64 bit

моё железо:
Процессор xeon 3680 6 ядер 3,46Ghz
ОЗУ 12 gb(трёхканал)
ssd 240 gb
Win 7 Pro 64

Добавлено через 1 минуту
Может у кого-то есть мысли, как можно весь процесс автоматизировать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2020, 02:47
Ответы с готовыми решениями:

Как заставить функцию работать быстрее?
Может кто подсказать в плане оптимизации как заставить функцию Check() работать быстрее? Применил...

[Статья] Как заставить Вашу программу на VB работать быстрее?
Автор: Рут Глушкин, VBStreets Прежде всего заставьте программу работать, а затем беспокойтесь о...

Оцените, будьте так любезны! Как заставить игры работать чуточку быстрее на таком компьютере?
---------------------------------- 01 - Операционная система ---------------------------------- ...

Можно ли заставить ЖД работать быстрее?
Подключил я внешний хард ко второму пню, чтобы перегнать туда инфу с компа, но появилась надпись...

27
Эксперт .NET
6565 / 4316 / 1031
Регистрация: 25.05.2015
Сообщений: 13,020
Записей в блоге: 13
Завершенные тесты: 4
18.05.2020, 06:05 2
Цитата Сообщение от MarKaPolo Посмотреть сообщение
Может у кого-то есть мысли, как можно весь процесс автоматизировать?
Осваивайте sed на линуксе.
1
2351 / 1151 / 450
Регистрация: 06.06.2017
Сообщений: 4,008
18.05.2020, 15:39 3
MarKaPolo, для винды помимо WSH/PoSh и кучи всяких утилит из самых оптимальных есть nhrt и ssed.
1
2651 / 1195 / 206
Регистрация: 10.12.2013
Сообщений: 3,994
19.05.2020, 20:28 4
Цитата Сообщение от MarKaPolo Посмотреть сообщение
Как заставить Notepad++ работать быстрее?
MarKaPolo,

если ты обратишься с данным вопросом напрямую к автору Notepad++,
то наверняка получишь ответ, что текстовый редактор по своему назначению не относится к классу программ,
которые без участия пользователя обрабатывают многочисленные файлы с 5 миллионами строк в каждом.

Иными словами, инструмент выбран неудачный. Нужен другой.

Windows на инструменты скуп. По сути их у него и нет. Надо искать и устанавливать. Кроме того Windows за всё хочет денег.
Linux на инструменты богат, они у него есть. Бесплатные. И потому всем известные.

Так вкратце, с некоторыми оговорками, обстоят дела. ( точнее, обстояли; сейчас немного лучше )

Предложенный sed - правильный выбор.

Есть ли он для Windows? - Есть.
1
2351 / 1151 / 450
Регистрация: 06.06.2017
Сообщений: 4,008
21.05.2020, 13:02 5
Цитата Сообщение от volodin661 Посмотреть сообщение
По сути их у него и нет. Надо искать и устанавливать. Кроме того Windows за всё хочет денег.
Командные утилиты для Windows в подавляющем большинстве в установке в отличии от тех же на Линукс не нуждаются, их без проблем можно запускать с флешки. Чистый линукс тоже не богат на инструменты. А различные сборки можно сопоставить со сборками Windows, где каждый встаивает то, что хочет. И никаких денег за свои командные проги Windows не требует. Зато сторонних полезных прог/утилит разного калибра гораздо (в сотни и тысячи раз) больше, чем у Линукса.

Цитата Сообщение от volodin661 Посмотреть сообщение
Предложенный sed - правильный выбор.
Неправильный. Правильные я привёл.
0
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 11
21.05.2020, 21:15  [ТС] 6
Я взял сначала nhrt, сделал файл со словами для удаления и батник для запуска со списком для удаления.
Есть проблема, если файл менее 4 mb, то программа в консоли на каждый файл тратит секунды 4-5, но если файл 4+ мегабайта,то на 4-5 файле скорость падает до 1 файла в 20 минут примерно, а когда я попробовал прогу с батником на файла 100 мегабайт, то там та же ситуация, первые 3 пролетели с скоростью обработки около 30мегабайт в секунду, это видео из дампа который появляется при обработке таких файлов, но как только прога переходит к 4 файлу, то за ночь обрабатывает 2-3 точно таких же файла!)
В общем наверно косяк у меня с виндой или с процессором, другими настройками, теряюсь в догадках в общем. Пока продолжаю использовать notepad++, установил терминал, буду копать sed, пока успехи не очень,надо ещё денёк другой разобраться!)

Добавлено через 21 минуту
Ещё странность, после перезагрузки компа nhrt работает с первыми 3 файлами, потом он начинает тормозить, даже если файл на котором он начал тормозить заменить другим, то есть проблема в этом файле, даже если запустить Программу в другой папке и с другими файлами или с другим условием работы, он перестаёт нормально работать. Значит у меня проблема не в проге а системе!
Оперативки свободной более 9гб
Файл подкачки 36гб
При работе nhrt загрузка процессора идёт На графике пилой, работают 6 ядер на 20% каждое примерно
Система и файлы с прогой на одном ssd

У кого есть предположения куда копать?

Добавлено через 2 минуты
С учетом проблем с системой, я думаю что использование ssed или sed в терминале Cygwin будет с тем же результатом
0
Эксперт .NET
6565 / 4316 / 1031
Регистрация: 25.05.2015
Сообщений: 13,020
Записей в блоге: 13
Завершенные тесты: 4
21.05.2020, 21:30 7
Проверьте фрагментацию.
Скиньте скрипт и файл, на котором можно протестить.
0
2651 / 1195 / 206
Регистрация: 10.12.2013
Сообщений: 3,994
21.05.2020, 21:34 8
Bash
1
sed -i -E '/Pattern: 1/d; s/^Address: //; s/^Privkey: //' *
1
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 11
22.05.2020, 00:07  [ТС] 9
Вот архив, в нем 1 файл с данными, название состоит из даты
сама nhrt, батник и 2 txt файла, батник запускает файл del.txt, в нем то что нужно удалить, последняя строка это удаление пустых строк, которые появляются после удаления "Pattern: 1", реализовано через удаление переноса строки из файла cr.txt, я знаю что это костыль, если есть другой способ удаления, прошу поделитесь.

для теста сам файл с данными вам нужно будет размножить, сделав 5-10 копий.

ещё вопрос к параметру -о, вывод подробной информации о процессе, так и не понял куда его вписывать, пробовал и в батнике и в del.txt, всегда выдаёт ошибку и программа не стартует.
0
Вложения
Тип файла: rar ТТ.rar (3.69 Мб, 3 просмотров)
Эксперт .NET
6565 / 4316 / 1031
Регистрация: 25.05.2015
Сообщений: 13,020
Записей в блоге: 13
Завершенные тесты: 4
22.05.2020, 08:52 10
MarKaPolo, попробовал...

железо
Windows:
Проц: Core i5-4670K
Диск:
------------------------------------------------------------------------------
CrystalDiskMark 7.0.0 x64 (UWP) (C) 2007-2019 hiyohiyo
Crystal Dew World: https://crystalmark.info/
------------------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

[Read]
Sequential 1MiB (Q= 8, T= 1): 6055.990 MB/s [ 5775.4 IOPS] < 1380.77 us>
Sequential 1MiB (Q= 1, T= 1): 4970.527 MB/s [ 4740.3 IOPS] < 210.39 us>
Random 4KiB (Q= 32, T=16): 1600.059 MB/s [ 390639.4 IOPS] < 1101.84 us>
Random 4KiB (Q= 1, T= 1): 298.465 MB/s [ 72867.4 IOPS] < 13.43 us>

[Write]
Sequential 1MiB (Q= 8, T= 1): 10799.740 MB/s [ 10299.4 IOPS] < 772.25 us>
Sequential 1MiB (Q= 1, T= 1): 7305.407 MB/s [ 6967.0 IOPS] < 143.06 us>
Random 4KiB (Q= 32, T=16): 1148.409 MB/s [ 280373.3 IOPS] < 1694.38 us>
Random 4KiB (Q= 1, T= 1): 229.895 MB/s [ 56126.7 IOPS] < 17.52 us>

Profile: Default
Test: 1 GiB (x5) [Interval: 5 sec] <DefaultAffinity=DISABLED>
Date: 2020/05/22 10:12:30
OS: Windows 10 Professional [10.0 Build 18363] (x64)

---------------------------------------------------------------------------------------------------------------------------------------------
Linux:
Проц: Core i3-7100U
Диск: ноутбучный ST9250315AS на 5400 оборотов
Timing cached reads: 11758 MB in 1.99 seconds = 5901.38 MB/sec
Timing buffered disk reads: 220 MB in 3.02 seconds = 72.95 MB/sec

---------------------------------------------------------------------------------------------------------------------------------------------
nhrt:
Ваш файл в 6МБ обрабатывался 40 секунд на одной замене:
Windows Batch file
1
nhrt.exe -e -set:"Pattern" 13.05.2020_19.06.28.txt
Вашей командой, с 3 заменами: 128 секунд.
---------------------------------------------------------------------------------------------------------------------------------------------
sed из Cmder:
Файл в 200МБ обрабатывал 26 секунд.
Текст команды привели выше: Как заставить Notepad++ работать быстрее? (3 замены).
---------------------------------------------------------------------------------------------------------------------------------------------
sed под линуксом с той же командой и тем же большим файлом: 10 секунд.
Если разместить файл на ramdrive tmpfs, то 6 секунд.
1
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 11
22.05.2020, 11:18  [ТС] 11
Rius можете запустить nhrt размножив файл, т.е. сделать 6 копий файла, поместить в одну папку, и в моем файле оставить только одну строку "Pattern", у меня проблема именно в том что когда программа обработала первых 3 файла, она начинает тормозить, даже если её закрыть и запустить снова даже на 1 файл, она так же тормозит, можете ещё параллельно открыть диспетчер задач/быстродействие и после запуска посмотреть сколько ядер и потоков у вас задействовано при обработке.
0
Эксперт .NET
6565 / 4316 / 1031
Регистрация: 25.05.2015
Сообщений: 13,020
Записей в блоге: 13
Завершенные тесты: 4
22.05.2020, 11:37 12
6 копий файлов. Одна замена.
Проц загружен на 22-23 %. Всего имеется 4 ядра/потока.
Примерно 43 секунды на один файл. Равномерно, от количества не зависит.
Отстойная скорость по сравнению с линуксовой утилитой под линуксом.
1
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 11
22.05.2020, 11:42  [ТС] 13
А у меня грузится только сами ядра, без потоков. Немного позже попробую в терминале sed запустить
0
Эксперт .NET
6565 / 4316 / 1031
Регистрация: 25.05.2015
Сообщений: 13,020
Записей в блоге: 13
Завершенные тесты: 4
22.05.2020, 11:47 14
У меня 4 ядра, без hyper-threading. Возможно, под потоком вы что-то другое подразумеваете.

Добавлено через 2 минуты
Цитата Сообщение от MarKaPolo Посмотреть сообщение
sed запустить
Только именно sed, а не всякие ssed'ы.
1
2351 / 1151 / 450
Регистрация: 06.06.2017
Сообщений: 4,008
22.05.2020, 19:28 15
Цитата Сообщение от Rius Посмотреть сообщение
Только именно sed, а не всякие ssed'ы.
Аргументы? sed не поддерживает PCRE.

P. S.: качать cmder, который в распаковке весит 300+ Мб, для портабельных нужд — себя не уважать.
1
Эксперт .NET
6565 / 4316 / 1031
Регистрация: 25.05.2015
Сообщений: 13,020
Записей в блоге: 13
Завершенные тесты: 4
22.05.2020, 20:43 16
MarKaPolo, ежели что, вот здесь можно взять маленький sed (ссылки внизу страницы).
Батник только надо будет немного поправить под это дело:
Windows Batch file
1
2
3
4
5
@echo off
for %%f in (13*.txt) do (
    echo %%f
    sed-4.7-64bit.exe -i -E "/Pattern: 1/d; s/^Address: //; s/^Privkey: //" "%%f"
)
Ваши 6 файлов обрабатываются за считанные секунды.
1
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 11
23.05.2020, 02:35  [ТС] 17
Rius, ваш маленький sed просто чудо!)
86 файлов общим размером 12Gb обработал примерно за 10 минут! notepad++ то же самое но в 3 захода, делает часов 8!

можете ещё подсказать команду на удаление строки если она начинается на "5", это нужно отдельно.

есть инструмент на подобии sed'а, который ищет текст из файла(в каждой строке 1 адрес примерно такой: PBAesScHhcoRDV6iasyJ5yzXxs9P8z ) в большом количестве папок/файлов, сейчас я использую FileLocator Pro 8.5, он работает хорошо, но медленно, потому что в файле из которого нужно брать искомые строки, 20000 строк, то есть одна строка, это один адрес!) а может быть и 20 000 000 строк, но такие я даже не пытался запускать, у меня в компе оперативки не хватит на это!

Добавлено через 7 минут
тема: Как заставить Notepad++ работать быстрее?
ответ: использовать sed!)))
0
Эксперт .NET
6565 / 4316 / 1031
Регистрация: 25.05.2015
Сообщений: 13,020
Записей в блоге: 13
Завершенные тесты: 4
23.05.2020, 09:33 18
Цитата Сообщение от MarKaPolo Посмотреть сообщение
ваш маленький sed просто чудо!)
Ну так я же сразу сказал - юзайте sed (и на линуксе, возможно, было бы ещё быстрее), а вы зачем-то занялись какими-то ненужными вещами...
sed, однако, не мой, а линуксовый. А текст команды вообще volodin661 набросал.

Цитата Сообщение от MarKaPolo Посмотреть сообщение
86 файлов общим размером 12Gb обработал примерно за 10 минут! notepad++ то же самое но в 3 захода, делает часов 8!
Просто Notepad++ не предназначен для этого.

Цитата Сообщение от MarKaPolo Посмотреть сообщение
можете ещё подсказать команду на удаление строки если она начинается на "5", это нужно отдельно.
Bash
1
sed -i -E '/^5/d' file.txt
Цитата Сообщение от MarKaPolo Посмотреть сообщение
есть инструмент на подобии sed'а, который ищет текст из файла
grep
Под линуксом вообще очень много утилит такого рода. Намного больше, чем под Windows, т.к. сама система так строилась. То, что понравилось виндузятникам, они даже портировали в Windows, т.к. в самой Windows таких средств не хватало.
Если уж вас сюда занесло, есть повод установить cygwin, msys2, или тот же cmder, и спокойно пользоваться этими удобными инструментами, а не страдать как упёртые виндузятники.

Цитата Сообщение от MarKaPolo Посмотреть сообщение
тема: Как заставить Notepad++ работать быстрее?
ответ: использовать sed!)))
Это обычное явление, суть которого в том, что новички не умеют задавать вопросы. Называется это "Проблема X-Y", или "Проблема Молотка". Также на форуме можно часто встретить её частную негативную реализацию, описанную в статье "Сага о X, Y и Z... - Блог GunSmoker-а".
1
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 11
23.05.2020, 10:59  [ТС] 19
Rius, ваш, я имел в виду ссылку которую вы дали на sed!)

volodin661, Rius, FlasherX, вам всем СПАСИБО за помощь!
0
2351 / 1151 / 450
Регистрация: 06.06.2017
Сообщений: 4,008
23.05.2020, 14:50 20
MarKaPolo, вообще автор nhrt в конце прошлого года обещал ускорить утилиту, но пока тихо.
Для повседневных нужд нет смысла ставить эти громоздкие пакеты с кучей бесполезного хлама. Юзайте UnixUtils и BusyBox. Вам этого хватит выше крыши.
И то, что вам дали (посл. версия другая), — это не маленький sed, маленький (вложенный) весит в 15 раз меньше и справится с таким файлом ничуть не хуже.
Windows Batch file
1
sed.exe -i -e "/Pattern: 1/d; s/^Address: //; s/^Privkey: //" *.txt
Windows Batch file
1
ssed.exe -e "/Pattern: 1/d; s/^Address: //; s/^Privkey: //" 13.05.2020_19.06.28.txt>test.txt
1
Вложения
Тип файла: 7z sed.7z (43.3 Кб, 1 просмотров)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2020, 14:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как заставить сайт написанный на 5.3 заставить работать на 5.6? Как принудительно включить register_globals?
Есть древний сайт. Работает на php 5.3. Как объяснил разработчик данного сайта - все дело в...

Как заставить точку двигаться плавно и быстрее?
Наверно это очень нелепый и глупый вопрос, но всё-же рискну задать. В QBasic можно сделать так,...

Как будет быстрее работать с переменной $content?
Здравствуйте! Попробовал искать через поиск, но он упорно не работает. У меня такой вопрос: ...

Как почистить компьютер, чтобы он стал работать чуть быстрее?
Здравствуйте. Как можно почистить компьютер, чтобы он стал работать чуть быстрее, есть хорошие...

Как быстрее будет работать SELECT для 100 млн строк
Есть 100 миллионов строк, как быстрее будет работать выборка: 1) Загнать их все в 1 таблицу 2)...

Как заставить работать ? :)
Form1.label6.caption := FloatTostr (dosp); if Dosp &lt;=0.1 then Form1.label7.caption := '0.1'; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.