Хочется, чтобы процесс 1cv8 в памяти уменьшался после очистки переменной. #412650


#0 by J_Silver
В общем в таблицу значений выгружается разультат запроса. Около полумиллиона строк. При выгрузке процесс 1cv8 взлетает со 150 до 1400 мб. Далее после строчки ТЗ = Неопределено; уменьшается всего до 800 мб. Хотелось бы большего, а точнее меньшего :)) занимаемого объема в памяти. Подскажите пожалуйста куда копать.
#1 by Злобный Фей
Попробуй Результат тож очистить. Ну и Запрос до кучи
#2 by J_Silver
К сожалению результат используется в дальнейшем. Сначала из него выгружается таблица напрямую, а потом по группировкам. Я вообще надеялся, что что то подскажут по поводу кэширования...
#3 by у лю 427
а причем здесь кеширование, если в платформе хреново сделана сборка "мусора" ?
#4 by dk
ну дык поставь предупреждение перед выгрузкой в ТЗ и замерь объем памяти
#5 by J_Silver
Пожалуй стоит описать ситуацию поконкретнее. Изначально есть Построитель Отчета. Результат которого используется в нескольких частях кода. Идут строчки. На второй строчке - точка останова. При остановке выполнения на ней - в памяти процесс в районе 100 метров. Так же как и на начало третьей. (Смотрю в диспечере задач).Наверняка это объясняется скульной базой. Кстати платформа 8.1.11. А вот третья строка дает жару. Эксперементально обнаружен предел в 1600 метров, после которого выдает "Не хватает памяти", хотя реально на компе 4гига оперативы. (Доступно не меньше 3,3 и ниче другое систему не грузит). Видимо сама платформа не тянет больше. Собственно повторюсь, после строчки ТЗ = неопределено; объем занимаемой памяти падает до 800 м. Построитель отчета обнулять не пробовал, тк он потом еще по коду используется. Собственно вопрос - а можно ли еще уменьшить процесс в памяти?
#6 by Господин ПЖ
>>Видимо сама платформа не тянет больше. не пратформа, а процесс. ну выгрузил ты в оперативку 500 000 строк, а дальше что? А оно вообще надо?
#7 by jcage
Нужно перестроить программу. Вообще назначение ТЗ с полумилионном строк на клиенте я слабо себе представляю. Тем более, если она получается через построитель.
#8 by Гений 1С
почитай на инфостарте "Слон в посудной лавке", мою статью. Узнаешь много интересного про кэширование в 1с8. Огорчишься.
#9 by Господин ПЖ
почитай каменты статьи... узнаешь много нового что думают об авторе статьи
#10 by v77
А может 1С правильно всё делает. Может 1С эту память вернет тогда, когда она потребуется другой программе. А раз пользователь жрет много памяти, то нет смысла её сразу отдавать. Может она через две секунды понадобится и её опять придется у системы запрашивать.
#11 by Бешенный Член
Минимизируй приложение. Увидишь, что потребление оперативки упадёт до 7-8 мегов. НО!!! Не виртуальная память.
#12 by nbIx
Зачем тебе вообще ТЗ нужно, если с результатом запроса во многом удобнее работать?
#13 by J_Silver
Начало данной темы. Работает с результатом запроса, переодически пару раз получая из него ТаблицуЗначений, а потом Дерево значений. Вчера занимался оптимизацией. Запрос перековырял до безобразия. На скуле стал работать раз в 10 быстрее, лишних данных не выдает, вроде как. Все массивы и таблицы значений очищаются сразу после использования. При работе с Деревом значений, при использовании данных строки первого уровня - она удаляется из дерева. Текущий рекорд выгрузки за 1 раз - около 20 000 позиций (вместо изначальных 8 000). (6-7)Может работу с такой большой ТЗ можно и обойти, но лезть дальше и ковырять механизм формирования XML файлов как то не хочется, потому как текущую "производительность" уже можно считать удовлетворительной. Выгружать данные планируется каждый день (точнее каждую ночь), но не думаю, что их за раз наберется более 20000 позиций. Всего в стправочнике 88000. Извиняюсь, не совсем понятно "минимизируй"...
#14 by rassigor
ссылко дай
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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