Утечки памяти в 1с #769876


#0 by Impuls20_03
Добрый день эксперты. Столкнулся с проблемой утекания памяти в 1с. Сперва я грешил на свою хроническую криворукость, но после сокращения примера до минимума пришел к выводу что дело не совсем во мне. В общем суть проблемы: Каждые 10 секунд создается несколько фоновых заданий. В каждом фоновом задании создается HTTPСоединение до сайта, который отдает данные в JSON. Далее с помощью ЧтениеJSON ответ парсится и передается в форму с помощью ПоместитьВоВременноеХранилище, которая и отображает результат. Помещаются данные каждый раз по одному и тому же адресу. Собственно схема мутная но работает и, на время запросов, не вешает основной поток программы. Проблема в том, что 1с-ка медленно но верно отжирает память у системы пока не сожрет ее полностью. Проблема усугубляется еще и тем, что через какое-то время (когда сожрется примерно 500Мб памяти) начинает люто тормозить и интерфейс, а процессор загружается на 100%. Дальше больше. Закрываем форму - память не кушается, но и старая память не освобождается. Открываем фору - память продолжила течь. Собственно начал упрощать проблему, которая свелась вот к такому: На форме две кнопки. Одна вызывает сервеную процедуру с параметром, другая без параметра. И в том и в другом случае память течет, но течет с разной скоростью (с параметром быстрее), и 1с-ка эту отожранную память повторно не использует. И, если в текущем варианте память течет медленно, то в моем варианте с фоновыми заданиями 1с-ка перестает подавать признаки жизни уже на 5-й минуте полета. Забыл сказать. Проверял на самой свежей на текущий момент: 1С:Предприятие 8.3 (8.3.7.2008). Собственно буду ждать любых предложений как можно побороть данную проблему, или где я косякнул.
#1 by Fragster
серверные процедуры пустые?
#2 by пипец
это болезтнь )))
#3 by Impuls20_03
В тестовом варианте серверные процедуры пустые. В моем естественно что нет.
#4 by nordbox
Impuls20_03, хочешь по развлекаться?? сделай форму, можешь даже обычную, сделай пустую процедуру какую нибудь и поставь ее вызов в Процедуру ОбновлениеОтображения этой формы Понаблюдай за загрузкой проца и памятью ))
#5 by Impuls20_03
Кстати. По истине чудесный форум. Вот только тему создал - так сразу все стало работать нормально. Видимо ЦМС сайта разработана с использованием экстракта подорожника. Правда я теперь вообще ничего не понимаю. 20 минут назад память текла безбожно и за 1000 серверных вызовов все ложилось. А теперь все работает. Конечно память потихоньку испаряется, но уже не так как было. В конфе ничего не менял))) Прям загадка. to nordbox. Таки это ненормальное поведение, или вы указываете что я где-то сильно касячу?
#6 by nordbox
Я не говорю что ты косячишь, я говорю то что есть, то с чем я сталкивался
#7 by Fragster
вот такую обработку запустил (без отладки), за 10 минут, вроде, ничего не утекло &НаКлиенте
#8 by mingw
Лучше просто не знать как работает garbage collector. Особенно когда много физической памяти. Легче жить будет.
#9 by Impuls20_03
Попробовал. Так не течет. А если вызывать 20000 раз из одной процедуры то течет:
#10 by Fragster
каждый раз при нажатии на кнопку, или один раз утекает и фиксируется?
#11 by Impuls20_03
В том то и дело что каждый раз при нажатии. После отработки процедуры память тоже не сбрасывается. А после повторного вызова память начинает прибавляться к уже накопленной.
#12 by mingw
Поиграйся в тестах с разными режимами запуска 1С (Толстый/Тонкий) и обязательно запускать режим Предприятия не через отладку из Конфигуратора.
#13 by Broadbread
Yes it can
#14 by Impuls20_03
Да. Действительно. В толстом клиенте с памятью все ОК.
#15 by mingw
Зато некоторые конфы в толстом глючат. К примеру Розница 2.2 при запуске в толстом открытие элементов справочников из реквизитов документов по "Открыть (Ctrl+Shift+F4)"
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С