|
v7: Объект "Таблица" при закрытии не выгружается из ОЗУ процесса
| ☑ |
0
AlexS1C
07.05.13
✎
15:27
|
Тестировал отчеты на больших данных! Обработка формирует отчет! Объект "Таблица" переменная уровня процедуры где заполняется она! Но после закрытия самой таблицы или даже самой обработки память не освобождается! К примеру с 60 мб выросла до 300 мб! После закрытия обработки и самой таблицы, выгрузится по мелочи каких 15 мб и все 285 остается висеть! Кто что знает про эту проблему?
|
|
1
mikecool
07.05.13
✎
15:29
|
Столько восклицательных знаков!
проблема - мусорщик когда надо, тогда и сработает
|
|
2
ДенисЧ
07.05.13
✎
15:30
|
Фича.
(1) в данном случае не сработает до закрытия 1с
|
|
3
fmrlex
07.05.13
✎
15:31
|
Ну кстати да. Стратегия работы с памятью. Причем не самая плохая реализация.
|
|
4
mikecool
07.05.13
✎
15:32
|
и чего бы не дать деструкторы для объектов?
|
|
5
ДенисЧ
07.05.13
✎
15:32
|
(4) Может, тебе ещё инсерт/апдейт груповой дать? :-)
|
|
6
AlexS1C
07.05.13
✎
15:34
|
Т.е. я так понял это нельзя победить?
|
|
7
mikecool
07.05.13
✎
15:34
|
(5) да я и сам возьму )))
|
|
8
Chum
07.05.13
✎
15:41
|
(6) Семерка же. Она еще заставляет скуль память не отпускать.
А вообще, иногда помогают такие фишки, как фиксированная высота строки таблицы или обнуление объектов после использования, например, Таблица = 0;
|
|
9
Torquader
09.05.13
✎
00:25
|
Просто нужно для отчёта создавать переменную в модуле и использовать повторно, если отчёт обновляется.
Также полезно перед удалением таблицы сделать удаление строк.
|
|
10
Cthulhu
09.05.13
✎
12:08
|
да не надо истерить.
нормально таблича очищает память при переназначении (присвоении переменной нуля или пустой строки, например).
просто 1с-ина, забрав у системы эту память, не отдает её обратно, а продолжает использовать для размещения других своих объектов.
|
|
11
Cthulhu
09.05.13
✎
12:09
|
(10)+: а, да, возможно в контексте только этой формы. переоткрытие формы тогда помогает.
|
|