Pull to refresh

Выбираем лучший текстовый редактор для поиска логов

Reading time4 min
Views14K

Логов становится все больше и больше, а времени на их анализ и поиск всё меньше. Мне стало интересно, а есть ли разница в скорости и производительности популярных программ при работе с большими объемами текста. Оказывается есть! Будем сравнивать Notepad, Notepad++, TextPad и Atom в скорости поиска текста в лог-файлах.

Что будем измерять:

  • Время запуска.

  • Потребление памяти при старте.

  • Скорость открытия редактора и файла (100 Мбайт и 1 Гбайт).

  • Количество используемой оперативной памяти.

  • Поиск строки текста.

  • Поиск регулярного выражения.

Подробнее по железу, версиям софта и методам тестирования

текстовые редакторы:

- Notepad++ v8.4.2 (64-bit)

- TextPad 8.12.0 (2022-05-14) (64-bit)

- Atom 1.60.0 x64

- Notepad (Блокнот)

Тест проводился на ноутбуке Dell Latitude 5511 (i7-10850H, 32 Гбайт RAM, Windows 10) Время замерялось секундомером на телефоне. Измерения проводились на лог-файлах SIP-сервера. Для создания файла размером 1 Гбайт оригинальный файл размером 100 Мбайт был скопирован 10 раз. Для поиска использовалась строка "340170317_134134587" и регулярное выражение "340170317\_\d{8}7" либо '340170317\_[[:digit:]]{8}7'.

Желаемый результат поиска - вывод всех совпадений, найденных при запросе (функция "Find All in Current Document" в Notepad++)

Искомое значение встречалось 33 раза файле в 100 Мбайт и 330 раз в файле размером 1 Гбайт.

Время старта и потребление памяти

Начнем тест с сравнения времени старта и потребления памяти пустого окна редактора.

Таблица 1 – Время запуска и потребление памяти

App

Start time

RAM

Notepad++

1

10

TextPad

1

8

Atom

2

367

Notepad

1

4

Примечение
Start time - время в секундах для открытия редактора
RAM - количество Мбайт оперативной памяти, отображаемое в Диспетчере Задач

Время старта у большинства редакторов - секунда или даже меньше. Только Atom требует заметно больше, хотя и всего две секунды. Что касается потребления памяти, Atom уже на старте заметно вырывается вперед.

Тестируем файл размером 100 Мбайт

Изначально я пытался использовать меню “Открыть с помощью” из проводника, так как чаще всего логи открываю именно так. Однако, для Atom всегда появляется дополнительное инфо-окошко, которое нужно было вручную закрывать. Так что скорость открытия файла для Atom указана приблизительно. Кроме того, ради спортивного интереса, я решил грепнуть (grep) эти файлы в WSL (Ubuntu) в командной строке.

Таблица 2 – поиск по файлу размером 100 Мбайт

App

Start time

RAM

Count

Simple
Search

Regex
search

Notepad++

1

220

1

1

1

TextPad

1

43

1

1

1

Atom

4

757

 1

1

Notepad

38

220

WSL (Ubuntu)

1

1

Примечание
Start time - время в секундах с начала открытия файла до появления текста в редакторе
RAM - аналогично Tаблице 1
Count - выводит только количество совпадений удовлетворяющим условиям поиска
Simple Search- время в секундах для поиска строки "340170317_134134587" во всем файле. В Notepad++ эта функция называется "Find All in Current Document". В результатах поиска должны выводиться детали о найденных совпадениях. В TextPad для этого использовалась функция "Find in Files". В Atom такая функция отсутствует. В Notepad поиск не тестировался
Regex search - Аналогично Simple Search, но поиск идет по регулярному выражения "340170317_\d{8}7"

Окно поиска в TextPad
Окно поиска в TextPad
Atom требует подтвердить открытие файлов большого размера
Atom требует подтвердить открытие файлов большого размера

Тестируем файл размером 1 Гбайт

Таблица 3 – поиск по файлу размером 1 Гбайт

App

Start time

RAM

Count

Simple Search

Regex search

Notepad++

2

1165

4

4

8

TextPad

12

349

5

13

13

Atom

8

2619

1

2

Notepad

452

2147

WSL (Ubuntu)

5

5

Примечание

Start time, RAM,Count, Simple Search, Regex search - аналогично Tаблице 2

При большем размере файла удается наблюдать несколько интересных моментов.  Из приятного, после 7 с лишним минут (452с) Notepad все же смог открыть файл, хотя на всё это время он, как и положено, ушёл в себя и не отвечал.

Notepad не завис, он медленно работает
Notepad не завис, он медленно работает

Быстрее всего файлы открывает Notepad++, при этом демонстрирую средние показатели по времени поиска. 

TextPad, относительно других, работает не торопясь, но и оперативы требует не много. 

Atom отличается молниеносным поиском, но требует оперативы в разы больше чем размер файла.

Окно поиска в Atom. Параметр Count (found) отображается практически мгновенно
Окно поиска в Atom. Параметр Count (found) отображается практически мгновенно

Поиск по директории

И финальный тест – поиск по директории. В директории 10 файлов по 100 Мбайт. Общий объем 1 Гбайт.

Таблица 4 – поиск по директории

App

RAM

Simple Search

Regex search

Notepad++

220

6

11

TextPad

14

13

14

Atom

401

6

6

WSL (Ubuntu)

6

6

Примечание

RAM,Simple Search, Regex search - аналогично Tаблице 2

В данном сценарии уже не так важен сам редактор, как взаимодействие с жёстким диском.

Результаты поиска по директории в Atom
Результаты поиска по директории в Atom

Место для выводов

Очевидно, что разные приложения по разному работают с текстовыми файлами. На файлах больших размеров или при поиске в директории это становится особенно заметно.

Похоже, стандартный Notepad читает файл одним потоком, поэтому делает это долго, в плане оперативы “дорого” и интерфейс его не отвечает во время открытия файла.

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

TextPad наименее требователен к объему оперативной памяти, но времени на открытие файла (очевидно для его преобразования в меньший объём) тратится в разы больше.

Atom файл открывает не быстро, оперативы потребяет в  разы больше размера файла, но время поиска уже в открытом документа – самое лучшее.

Что касается общего итога, похоже, лучшего редактора ещё не придумали и каждая из рассмотренных программ решает задачи по своему. С другой стороны, стоит отдельно отметить стандартный Блокнот, который для работы с логам не подходит совсем.

Сравнивая Notepad++ и TextPad, я всё же выбираю Notepad++, однако, делаю это больше по привычке и личным предпочтениям.

Tags:
Hubs:
+5
Comments82

Articles