|
Ещё один редактор
|
|||
---|---|---|---|
#18+
Тестовые данные кстати брал здесь. 20289767 И заметно, что потребление памяти растёт с ростом (строк / байт). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2018, 16:57 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
SiemarglНадо чтобы размер файла превышал размер оперативки, тогда не может. Проверь =) Так чё проверять, это очевидно. Текстовый редактор должен разбить весь текстовый файл на строки, это можно сделать загрузив в память. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2018, 13:01 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
Когда-то уже отвечал по треду. Добавлю. Из best practices что мы используем на проекте. По логам. Мы конфигурим appenders или logrotate таким образом чтобы логи были не больше 1Гб. На проде и на дев-серверах и на QA. Логи имеют хронологию в виде суффикса который дописывается в виде даты. Например. Код: sql 1. 2. 3.
Если возникает необходимость по быстрому посмотреть какой-то баг - то на сервере в консоли делаем Код: sql 1. 2.
И прямо в less можно делать навигацию вверх-вниз по ключевым тегам. Если все таки есть необходимость работать с клипбордом или с подсветкой синтаксиса (json, xml) то мы качаем лог с сервера на свой десктоп и открываем в notepad++. Он довольно мощный и не падает от толстых тестовых файлов. Ну по крайней мере я не встречал таких ситуаций. Вообще в самой изначальной постановке - лог это не текстовый файл. Это sequence из независимых строк (событий) где каждая имеет свой набор атрибутов типа метку времени, источник, ThreadID, и собственно месседж и подходить к нему с позиции того что это некий неизменяемый замороженный снимок событий в прошлом. Поэтому текстовый редактор для лога - это некая натяжка. До кучи есть еще интересные программные продукты для анализа больших логов. Я к сожалению не использовал ElasticSearch, но мы планируем внедрить в проект. Если у кого-то есть опыт - прошу поделиться. Буду признателен. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2018, 13:20 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
maytonЕсли у кого-то есть опыт - прошу поделиться. Буду признателен. graylog2, работает на ElasticSearch, для логов просто незаменим. особенно удобен тем, что ведёт структурный лог, очень быстрый поиск с агрегацией, и на любую запись лога можно дать прямой линк, чтобы прикрепить к тикету. мастхев очень давно. текстовые логи только для совершенно крайних и тяжёлых случаев, но они тоже должны быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2018, 13:35 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
mayton, ещё кроме логов, полезно вести также метрику. кто-то для этого использует тот же лог, мы метрику ведём в clickhouse. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2018, 13:35 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
maytonПоэтому текстовый редактор для лога - это некая натяжка. натяжка здесь в слове «редактор», тот же FAR по F3 открывает файлы любого размера без давления на память. только что открыл 15 гиговый файл фаром по F3, сделал поиск, нашёл в середине файла, фар при этом сожрал 12.5 мб оперативки. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2018, 13:38 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
+1 я Far Ом пользуюсь уже более 15 лет. В нем ещё можно настроить цветовые схемы для подсветки синтаксиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2018, 15:17 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
hVosttSiemarglНадо чтобы размер файла превышал размер оперативки, тогда не может. Проверь =) Так чё проверять, это очевидно. Текстовый редактор должен разбить весь текстовый файл на строки, это можно сделать загрузив в память.Ты ляпнул чушь, не подумав. Довольно просто обойтись без полной загрузки. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2018, 19:55 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
SiemarglТы ляпнул чушь, не подумав. Довольно просто обойтись без полной загрузки. какие интересные сказки ты нам рассказываешь ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2018, 22:51 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
hVosttкакие интересные сказки ты нам рассказываешь Широко известный в узких кругах MultiEdit (DOS) редактировал файлы размером более доступных ему ~500Kb. Подтормаживал на загрузке фрагментов, но работал. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2018, 23:03 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
Basil A. SidorovhVosttкакие интересные сказки ты нам рассказываешь Широко известный в узких кругах MultiEdit (DOS) редактировал файлы размером более доступных ему ~500Kb. Подтормаживал на загрузке фрагментов, но работал. лично мне известны проблемы при реализации текстовых редакторов, я этой задачей занимался в академических целях, изучал код других редакторов. тот, кто говорит, что это «довольно просто», видимо считает, что разработка это какой-то вид магии, и надо просто скастовать парочку простых заклинаний. ну и надо бы сходить к разработчикам ФАР-а и многих популярных редакторов и сказать, какие же они там тупицы, не смогли сделать то, что сделать «довольно просто». ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2018, 23:56 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
hVosttтот, кто говорит, что это «довольно просто»В моём сообщении слова "довольно" и "просто" не употребляются ни по отдельности, ни в словосочетаниях. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2018, 00:07 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
mayton, Есть ещё много других способов. Но удобнее всё-таки не перебирать 10 разных программ а взять один нормальный инструмент. Разбивать логи по размеру не всегда удобно. OutOfMemory это наивно просто. Обычно ищем сесию и смотрим что происходит паралельно в соседних. А если соседная заинтересовала, смотрим дальше на историю соседней. Тут нельзя включить grep. Но можно конечно метатся: less, блокнотик, grep, блокнотик, less ..., sed, sed, cat. По крайней мере у меня такой опыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2018, 00:36 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
Какая сессия? Вы о чем? Я tomcat привел в качестве примера просто. И аут-оф мемори придумал на ходу. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2018, 01:12 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
maytonВ нем ещё можно настроить цветовые схемы для подсветки синтаксиса. Раскраска синтаксиса работает только в редакторе и при полной загрузке файла в память - синтаксис всегда надо раскрашивать с начала файла. Для больших файлов (от 1-2м) уже начинает заметно тормозить. Фаровский вьювер - тот да, влет. Но без синтаксиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2018, 15:00 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
Basil A. SidorovhVosttтот, кто говорит, что это «довольно просто»В моём сообщении слова "довольно" и "просто" не употребляются ни по отдельности, ни в словосочетаниях. а я и не говорил, что это невозможно. редактирование текстовых файлов без загрузки в память плохо дружит с рядовым функционалом: сохранение по требованию, undo, расчёт кол-ва строк, редактирование в середине, а не в начале или в конце, вставка/удаление строк, расставление переносов произвольным образом. и чтобы это быстро работало, и не портило файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2018, 22:18 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
hVosttредактирование текстовых файлов без загрузки в память плохо дружит с рядовым функционаломРедактирование пары гигабайт "наивными алгоритмами" плохо дружит с чем угодно. Загрузка в память не особо меняет ситуацию. Надеюсь, вы не станете возражать, что возможность грузить в память гигабайтные наборы данных - вполне рядовая вещь по сегодняшним временам. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2018, 06:04 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
Автор в начале топика говорил про просмотр лога. Я думаю что тема топика - не редактор а viewer. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2018, 10:03 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
maytonАвтор в начале топика говорил про просмотр лога. седьмое сообщение топика. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2018, 10:12 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
Basil A. SidorovРедактирование пары гигабайт "наивными алгоритмами" плохо дружит с чем угодно. Загрузка в память не особо меняет ситуацию. меняет не просто "особо", а категорическим образом меняет всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2018, 10:16 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
hVosttSiemarglНадо чтобы размер файла превышал размер оперативки, тогда не может. Проверь =) Так чё проверять, это очевидно. Текстовый редактор должен разбить весь текстовый файл на строки, это можно сделать загрузив в память. Не совсем так. Файл можно отобразить в память, затем пробежаться по нему и построить индексы по строкам. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2018, 23:00 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
Arm79Не совсем так. Файл можно отобразить в память, затем пробежаться по нему и построить индексы по строкам. Всё верно, но: 1. для построения индекса, надо всё равно прочитать весь файл 2. если файл сильно большой, то сам индекс может оказаться огромным и не влезть в память 3. сохранение файла требует свободного места на диске, не меньше размера файла но и реализация в разы усложняется, требуется очень много различных оптимизаций. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2018, 21:28 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
hVostt1. для построения индекса, надо всё равно прочитать весь файл с отображением сильно быстрее hVosttесли файл сильно большой, то сам индекс может оказаться огромным и не влезть в память если хранить только позиции начала строк и их окончаний - индекс очень компактный :-) hVosttсохранение файла требует свободного места на диске, не меньше размера файла Тут не поспоришь. Оперативно можно менять что-то в огромных файлах только тогда, когда новые данные по размеру как раз как старые. Или строки строго определенного формата и размера (типизированные). В общем, это не вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2018, 21:44 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
Arm79если хранить только позиции начала строк и их окончаний - индекс очень компактный :-)Самый компактный индекс хранит только смещения строк или только их длины. Первый вариант предполагает четыре или восемь байт на строку, второй - два или четыре. Для файлов, состоящих из коротких строк индекс займёт заметную долю от размера файла. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2018, 23:11 |
|
Ещё один редактор
|
|||
---|---|---|---|
#18+
1) Не обязательно хранить смещения всех строк. Можно индексировать страницы (грубо - 25 строк) 2) Смещения тоже можно складывать в двоичный файл. Над ним - сверху построить LRU-кеш. 3) Если отказаться от мгновенной фиксации вставок строк или удалений - то можно логгировать изменения. Понятное дело. Тема текстовых редакторов которые правят гига-байтные файлы не раскрыта. Но и не секретна. Есть исходники notepad++. Пускай автор смотрит. Изучает. Я не думаю что там сверх-умные алгоритмы. Тут самое сложное - даже не алгоритм а уяснение того что должен делать редактор и как. Должен ли править шапку гигбайтныех файлов? Или нет? Как говорили древние - LABOR ET PATIENTIA OMNIA VINCUNT. А вот сорцы ноутпада https://github.com/notepad-plus-plus/notepad-plus-plus ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2018, 00:12 |
|
|
start [/forum/topic.php?fid=16&msg=39587490&tid=1339808]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 256ms |
total: | 397ms |
0 / 0 |