powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Ещё один редактор
25 сообщений из 173, страница 3 из 7
Ещё один редактор
    #39587252
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тестовые данные кстати брал здесь. 20289767
И заметно, что потребление памяти растёт с ростом (строк / байт).
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587474
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglНадо чтобы размер файла превышал размер оперативки, тогда не может. Проверь =)

Так чё проверять, это очевидно. Текстовый редактор должен разбить весь текстовый файл на строки, это можно сделать загрузив в память.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587482
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда-то уже отвечал по треду. Добавлю.

Из best practices что мы используем на проекте.

По логам. Мы конфигурим appenders или logrotate таким образом чтобы логи были не больше 1Гб.
На проде и на дев-серверах и на QA. Логи имеют хронологию в виде суффикса который дописывается
в виде даты. Например.

Код: sql
1.
2.
3.
catalina.out
catalina.2018-01-18.log
catalina.2018-01-19.log



Если возникает необходимость по быстрому посмотреть какой-то баг - то на сервере в консоли делаем
Код: sql
1.
2.
grep -r -F"OutOfMemory" $CAT_HOME/logs/
less -p "OutOfMemory" $CAT_HOME/logs/catalina.out


И прямо в less можно делать навигацию вверх-вниз по ключевым тегам.

Если все таки есть необходимость работать с клипбордом или с подсветкой синтаксиса (json, xml)
то мы качаем лог с сервера на свой десктоп и открываем в notepad++. Он довольно мощный
и не падает от толстых тестовых файлов. Ну по крайней мере я не встречал таких ситуаций.

Вообще в самой изначальной постановке - лог это не текстовый файл. Это sequence из независимых
строк (событий) где каждая имеет свой набор атрибутов типа метку времени, источник, ThreadID, и собственно месседж
и подходить к нему с позиции того что это некий неизменяемый замороженный снимок событий в прошлом.

Поэтому текстовый редактор для лога - это некая натяжка.

До кучи есть еще интересные программные продукты для анализа больших логов. Я к сожалению
не использовал ElasticSearch, но мы планируем внедрить в проект. Если у кого-то есть опыт - прошу
поделиться. Буду признателен.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587489
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсли у кого-то есть опыт - прошу
поделиться. Буду признателен.

graylog2, работает на ElasticSearch, для логов просто незаменим. особенно удобен тем, что ведёт структурный лог, очень быстрый поиск с агрегацией, и на любую запись лога можно дать прямой линк, чтобы прикрепить к тикету. мастхев очень давно.

текстовые логи только для совершенно крайних и тяжёлых случаев, но они тоже должны быть.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587490
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

ещё кроме логов, полезно вести также метрику. кто-то для этого использует тот же лог, мы метрику ведём в clickhouse.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587491
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПоэтому текстовый редактор для лога - это некая натяжка.

натяжка здесь в слове «редактор», тот же FAR по F3 открывает файлы любого размера без давления на память.

только что открыл 15 гиговый файл фаром по F3, сделал поиск, нашёл в середине файла, фар при этом сожрал 12.5 мб оперативки.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587522
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1 я Far Ом пользуюсь уже более 15 лет. В нем ещё можно настроить цветовые схемы для подсветки синтаксиса.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587603
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttSiemarglНадо чтобы размер файла превышал размер оперативки, тогда не может. Проверь =)

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

Довольно просто обойтись без полной загрузки.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587639
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglТы ляпнул чушь, не подумав.

Довольно просто обойтись без полной загрузки.

какие интересные сказки ты нам рассказываешь
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587649
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttкакие интересные сказки ты нам рассказываешь Широко известный в узких кругах MultiEdit (DOS) редактировал файлы размером более доступных ему ~500Kb.
Подтормаживал на загрузке фрагментов, но работал.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587672
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovhVosttкакие интересные сказки ты нам рассказываешь Широко известный в узких кругах MultiEdit (DOS) редактировал файлы размером более доступных ему ~500Kb.
Подтормаживал на загрузке фрагментов, но работал.

лично мне известны проблемы при реализации текстовых редакторов, я этой задачей занимался в академических целях, изучал код других редакторов.

тот, кто говорит, что это «довольно просто», видимо считает, что разработка это какой-то вид магии, и надо просто скастовать парочку простых заклинаний.

ну и надо бы сходить к разработчикам ФАР-а и многих популярных редакторов и сказать, какие же они там тупицы, не смогли сделать то, что сделать «довольно просто».
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587674
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttтот, кто говорит, что это «довольно просто»В моём сообщении слова "довольно" и "просто" не употребляются ни по отдельности, ни в словосочетаниях.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587691
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Есть ещё много других способов. Но удобнее всё-таки не перебирать 10 разных программ а взять один нормальный инструмент.
Разбивать логи по размеру не всегда удобно.
OutOfMemory это наивно просто. Обычно ищем сесию и смотрим что происходит паралельно в соседних. А если соседная заинтересовала, смотрим дальше на историю соседней. Тут нельзя включить grep. Но можно конечно метатся: less, блокнотик, grep, блокнотик, less ..., sed, sed, cat.
По крайней мере у меня такой опыт.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587712
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая сессия? Вы о чем? Я tomcat привел в качестве примера просто. И аут-оф мемори придумал на ходу.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587853
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВ нем ещё можно настроить цветовые схемы для подсветки синтаксиса.
Раскраска синтаксиса работает только в редакторе и при полной загрузке файла в память - синтаксис всегда надо раскрашивать с начала файла. Для больших файлов (от 1-2м) уже начинает заметно тормозить. Фаровский вьювер - тот да, влет. Но без синтаксиса.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39587958
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovhVosttтот, кто говорит, что это «довольно просто»В моём сообщении слова "довольно" и "просто" не употребляются ни по отдельности, ни в словосочетаниях.

а я и не говорил, что это невозможно. редактирование текстовых файлов без загрузки в память плохо дружит с рядовым функционалом: сохранение по требованию, undo, расчёт кол-ва строк, редактирование в середине, а не в начале или в конце, вставка/удаление строк, расставление переносов произвольным образом. и чтобы это быстро работало, и не портило файл.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39588020
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttредактирование текстовых файлов без загрузки в память плохо дружит с рядовым функционаломРедактирование пары гигабайт "наивными алгоритмами" плохо дружит с чем угодно. Загрузка в память не особо меняет ситуацию.
Надеюсь, вы не станете возражать, что возможность грузить в память гигабайтные наборы данных - вполне рядовая вещь по сегодняшним временам.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39588110
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор в начале топика говорил про просмотр лога. Я думаю что тема топика - не редактор а viewer.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39588126
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonАвтор в начале топика говорил про просмотр лога. седьмое сообщение топика.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39588130
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovРедактирование пары гигабайт "наивными алгоритмами" плохо дружит с чем угодно. Загрузка в память не особо меняет ситуацию.

меняет не просто "особо", а категорическим образом меняет всё.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39592272
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttSiemarglНадо чтобы размер файла превышал размер оперативки, тогда не может. Проверь =)

Так чё проверять, это очевидно. Текстовый редактор должен разбить весь текстовый файл на строки, это можно сделать загрузив в память.
Не совсем так. Файл можно отобразить в память, затем пробежаться по нему и построить индексы по строкам.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39592515
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Не совсем так. Файл можно отобразить в память, затем пробежаться по нему и построить индексы по строкам.

Всё верно, но:

1. для построения индекса, надо всё равно прочитать весь файл
2. если файл сильно большой, то сам индекс может оказаться огромным и не влезть в память
3. сохранение файла требует свободного места на диске, не меньше размера файла

но и реализация в разы усложняется, требуется очень много различных оптимизаций.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39592521
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt1. для построения индекса, надо всё равно прочитать весь файл
с отображением сильно быстрее

hVosttесли файл сильно большой, то сам индекс может оказаться огромным и не влезть в память
если хранить только позиции начала строк и их окончаний - индекс очень компактный :-)

hVosttсохранение файла требует свободного места на диске, не меньше размера файла
Тут не поспоришь. Оперативно можно менять что-то в огромных файлах только тогда, когда новые данные по размеру как раз как старые. Или строки строго определенного формата и размера (типизированные). В общем, это не вариант.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39592539
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79если хранить только позиции начала строк и их окончаний - индекс очень компактный :-)Самый компактный индекс хранит только смещения строк или только их длины.
Первый вариант предполагает четыре или восемь байт на строку, второй - два или четыре.
Для файлов, состоящих из коротких строк индекс займёт заметную долю от размера файла.
...
Рейтинг: 0 / 0
Ещё один редактор
    #39592552
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Не обязательно хранить смещения всех строк. Можно индексировать страницы (грубо - 25 строк)
2) Смещения тоже можно складывать в двоичный файл. Над ним - сверху построить LRU-кеш.
3) Если отказаться от мгновенной фиксации вставок строк или удалений - то можно логгировать
изменения.

Понятное дело. Тема текстовых редакторов которые правят гига-байтные файлы не раскрыта.
Но и не секретна. Есть исходники notepad++. Пускай автор смотрит. Изучает. Я не думаю что
там сверх-умные алгоритмы. Тут самое сложное - даже не алгоритм а уяснение того
что должен делать редактор и как. Должен ли править шапку гигбайтныех файлов? Или нет?

Как говорили древние - LABOR ET PATIENTIA OMNIA VINCUNT.

А вот сорцы ноутпада https://github.com/notepad-plus-plus/notepad-plus-plus
...
Рейтинг: 0 / 0
25 сообщений из 173, страница 3 из 7
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Ещё один редактор
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]