powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Быстрый парсер текста
15 сообщений из 65, страница 3 из 3
Быстрый парсер текста
    #40007757
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal
cptngrb
основная мысль - меньше строк в потоках.

Да, т.к. это основной perf-киллер. Выделить строку, заполнить, помацать счетчик ссылок через блокировку, удалить строку... парсинг по месту конечно быстрее будет


Ситуация усугубилась с распространением многопоточности и серверной обработки
Причём документы могут быть небольшие, но их будет тонна )
Кто знает, может быть дойдут руки - напишу парсер JSON и/или XML
По крайней мере идея есть вообще бомбическая - задействовать thread var и стековую память - то есть вообще отказаться от синхронизации на куче

TTinyObject уже позволяет не только конструироваться в стековой памяти, но и резервировать память под рабочие буферы
Пока просто необходимости в этом не было )
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40007763
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal
Да, т.к. это основной perf-киллер.

Однопоточный ММ, на самом деле.
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40007764
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUСитуация усугубилась с распространением многопоточности и серверной обработки

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

SOFT FOR YOUПо крайней мере идея есть вообще бомбическая - задействовать thread var и стековую память
- то есть вообще отказаться от синхронизации на куче

Давно реализовано во всех менеджерах памяти, включая системный линухов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40007765
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

FastMM, даже 5 - аналогично работает через синхронизацию
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40007767
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

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


Так их всегда было много

Dimitry Sibiryakov

Давно реализовано во всех менеджерах памяти, включая системный линухов.


Мне кажется ты не понял суть
Менеджер памяти - куча
Для Delphi неблокирующий только ScaleMM. И BrainMM, до которого всё руки не дойдут
Даже в этом случае менеджмент накладывает существенный оверхед
Полный парсинг и конструирование через память на стеке и thread var - это совсем другое дело
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40007774
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUМне кажется ты не понял суть
Менеджер памяти - куча

Современный менеджер памяти - несколько куч по числу потоков/ядер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40007775
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

SOFT FOR YOU
Для Delphi неблокирующий только ScaleMM. И BrainMM, до которого всё руки не дойдут
Даже в этом случае менеджмент накладывает существенный оверхед
Полный парсинг и конструирование через память на стеке и thread var - это совсем другое дело
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40007959
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

нафиг конструирование,

а вот специальный SAX-парсер, только определяющий начало и конец данных, - это, да, другое дело )
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40007962
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov,

Честно говоря, не понял, о чём мессейдж )

Конструирование нужно потому, что конструирование обычно в куче. Можно ухищряться, делать пул объектов. А можно выделить нужное количество памяти на стеке. Или в thread var буфере
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40007964
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
Aleksandr Sharahov,

Честно говоря, не понял, о чём мессейдж )

Конструирование нужно потому, что конструирование обычно в куче. Можно ухищряться, делать пул объектов. А можно выделить нужное количество памяти на стеке. Или в thread var буфере


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

Ну, если ты понял, о чем я )
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40007980
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksandr Sharahov,
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40007983
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov,

На этой концепции и строится CachedTexts
Фишка в том, что ты не просто работаешь с памятью, у тебя есть ещё "строки", представляющие из себя пару <указатель,длина>, и поверх этих строк есть куча быстрых функций, перевода в число, дату, Trim, поиск символа или подстроки, в том числе без учёта регистра

А конструирование нужно потому, что свой парсер поверх этой концепции нужно наследовать от класса. И конвертация кодировки, в случае необходимости, так же происходит в классе
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40007997
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
... А конструирование нужно потому ...


самый быстрый этап обработки - тот, которого нет
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40008045
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov,

В теории да
На практике удобно, когда есть некий класс парсера
Который в случае необходимости конвертнёт исходную кодировку в ту, которую ты ожидаешь, позаботится о буферзации если ты парсишь гигабайтные тексты

Разумеется. Просто в данном контексте подход на основе наследуемых классов и конструирование на стеке/TLS - весьма эффективный подход
...
Рейтинг: 0 / 0
Быстрый парсер текста
    #40008060
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOU,

не упорствуй, отрок.
...
Рейтинг: 0 / 0
15 сообщений из 65, страница 3 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Быстрый парсер текста
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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