Логов становится все больше и больше, а времени на их анализ и поиск всё меньше. Мне стало интересно, а есть ли разница в скорости и производительности популярных программ при работе с большими объемами текста. Оказывается есть! Будем сравнивать Notepad, Notepad++, TextPad и Atom в скорости поиска текста в лог-файлах.
Что будем измерять:
- Время запуска
- Потребление памяти при старте
- Скорость открытия редактора и файла (100 Мб и 1 Гб)
- Количество используемой оперативной памяти
- Поиск строки текста
- Поиск регулярного выражения
Подробнее по железу, версиям софта и методам тестирования
текстовые редакторы:
Тест проводился на ноутбуке Dell Latitude 5511 (i7-10850H, 32 Гб RAM, Windows 10) Время замерялось секундомером на телефоне. Измерения проводились на лог-файлах SIP-сервера. Для создания файла размером 1 Гб оригинальный файл размером 100 Мб был скопирован 10 раз. Для поиска использовалась строка "340170317_134134587" и регулярное выражение "340170317\_\d{8}7" либо '340170317\_[[:digit:]]{8}7'. Искомое значение встречалось 33 раза файле в 100 Мб и 330 раз в файле размером 1 Гб.
Время старта и потребление памяти
Начнем тест с сравнения времени старта и потребления памяти пустого окна редактора.
Таблица 1 – Время запуска и потребление памяти
App |
Start time (seconds) |
RAM (Mb) |
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 |
Regex |
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 Searh - время в секундах для поиска строки "340170317_134134587" во всем файле. В результатах поиска должны выводиться детали о найденных совпадениях. В TextPad для этого использовалась функция "Find in Files". В Atom такая функция отсутствует. В Notepad поиск не тестировался Regex search - Аналогично Simple Search, но поиск идет по регулярному выражения "340170317\_\d{8}7"
Тестируем файл размером 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++, при этом демонстрирую средние показатели по времени поиска. TexPad, относительно других, работает не торопясь, но и оперативы требует не много. Atom отличается молниеносным поиском, но требует оперативы в разы больше чем размер файла.
Поиск по директории
И финальный тест – поиск по директории. В директории 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
В данном сценарии уже не так важен сам редактор, как взаимодействие с жёстким диском.
Место для выводов
Очевидно, что разные приложения по разному работают с текстовыми файлами. На файлах больших размеров или при поиске в директории это становится особенно заметно.
Похоже, Notepad читает файл одним потоком, поэтому делает это долго, в плане оперативы “дорого” и интерфейс его не отвечает.
Notepad++ загружает файлы быстро, поиск делает быстро, но и памяти потребляет соизмеримо размеру файла.
TextPad наименее требователен к объему оперативной памяти, но времени на открытие файла (очевидно для его преобразования в меньший объём) тратится в разы больше.
Atom файл открывает не быстро, оперативы потребяет в разы больше размера файла, но время поиска уже в открытом документа – самое лучше.
Что касается общего итога, похоже, лучшего редактора ещё не придумали и каждая из рассмотренных программ решает задачи по своему. С другой стороны, стоит отдельно отметить стандартный Блокнот, который для работы с логам не подходит совсем.