Анализатор кода жрёт RAM гигабайтами

1.zip (5.0 КБ)

Это код из которого я вычленил IDE#252, но я добавил : ICollection<TKey> как обход той issue.

Вот только обход не сработал - анализатор кода всё ещё так же сломан. Но теперь, кроме той проблемы, он ещё и, если оставить на достаточно долго - сожрёт всю RAM (по крайней мере я не смог дождаться где он останавливается).

Не представляю как даже минимальный код искать - потому что это, по сути утечка памяти.

Мне кажется, чем больше строк, тем дальше остановится. Разные строки влияют в разной степени: если убрать одни, разница будет лишь в пару процентов, а другие — процентов 10.

По-моему, его нет (см. выше). Но можно найти строки, вносящие весомый вклад в нагрузку на оперативку: ColoredStrings.pas (2.2 КБ)

Их можно искать, подстраховавшись связкой close PABC.exe и close PABC.bat. Вряд ли поможет, но всё же.

##
MillisecondsDelta;
while true do
  if MillisecondsDelta > 16 then
    break;
Exec('close PABC.bat');

taskkill /im PascalABCNET.exe /t /f

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

А у вас получилось дождаться пока анализатор кода остановится и перестанет кушать больше RAM?

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

ColoredStrings.pas без Parsing.pas: нагрузка на RAM.
7 КБ: колеблется от под 90 до 97%.
2 КБ: подскочила до 93 и стабилизировалась на 88%.

Почему вы в процентах считаете, а не в байтах?

У меня кст получилось таки дождаться пока анализатор кода доработает, после того как я удалил Parsing.pas из изначального архива (из заголовка):
image

Что-ж, могло быть хуже))) Правда, это если ничего не трогать.
Если теперь в рандомном месте добавить и сразу удалить пробел, после сохранения файла подскакивает снова до:
image

То есть старую информацию не отгрузило, и при этом ещё и почти всё продублировало.

100% у меня = 3,7 ГБ.