Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Как освободить память?

Ульяна А.
читатель
офлайн
Дата регистрации: 25.06.2007
Сообщений: 82
Пост №1
 
19.08.2008 22:09

В моей программе нужно просматривать большое количество документов. Заметила, что с течением времени она работает все медленнее. Такое впечатление, что просмотренные документы не удаляются из памяти и замедляют работу. <br>Можно ли как-то очищать память? Сначала думала что команда "УдалитьОбъекты" работает именно так, но, увы, она удаляет сами документы, а не их образы в памяти. Что вообще-то кажется мне совершенно нелогичным, ведь "СоздатьОбъект" именно образы создает. <br>А команды типа "ЗакрытьДокумент" я не нашла. Может кто знает какое-то решение?

Daedal
читатель
офлайн
Дата регистрации: 20.09.2004
Сообщений: 632
Пост №2
 
20.08.2008 05:28

>Сначала думала что команда "УдалитьОбъекты" работает именно так, но, увы, она удаляет <br>>сами документы, а не их образы в памяти. Что вообще-то кажется мне совершенно нелогичным, <br>>ведь "СоздатьОбъект" именно образы создает. <br>><br>Советую хоть кратко ознакомиться с технологией COM объектов, что бы не было лишних вопросов.<br>Так как при создании объекта счётчик его использования = 1. Если дополнительно получили на него ссылку, то счётчик += 1. Если прекратили использовать ссылку, то счётчик -=1 <br>В конечном итоге, когда объект перестаёт использоваться, то он автоматически уничтожается.<br><br>Доэтому для того что бы быть уверенным, что объекты не остаются в памяти обнуляйте все ссылки на ненужные объекты.<br><br>Есть много методов оптимизации выполнения модулей. Даже, если не ошибаюсь, на диске ИТС видел рекомендации.<br><br>>А команды типа "ЗакрытьДокумент" я не нашла. Может кто знает какое-то решение? <br>><br>Есть метод формы Закрыть(..)<br><br>Программа не работает на прямую с выделением/освобождением памяти. Не думаю что у неё свой менеджер памяти. Этим занимается система и она сама решает когда освободить память. Так как даже те же библиотеки dll, когда их программа выгружает они не сразу удаляются из памяти.<br><br>И если оперативной памяти достаточно, то никаких замедлений не должно чуствоваться. иначе свап на диск идёт.<br><br>

Ульяна А.
читатель
офлайн
Дата регистрации: 25.06.2007
Сообщений: 82
Пост №3
 
20.08.2008 20:22

Спасибо, конечно, за рекомендации, но, понимаете ли, к программе их не пришьешь, а потому толку от них, увы, мало. :((<br>Что там когда у них автоматически закрывается я не знаю, но замедление просто катастрофическое. <br><br>>Доэтому для того что бы быть уверенным, что объекты не остаются в памяти >обнуляйте все ссылки на ненужные объекты.<br><br>Это Вы про те переменные, которые присваиватся через "СоздатьОбъект"? Так они же в цикле автоматически переназначаются. И что?<br> А больше я никаких ссылок не создаю, как мне представляется.<br><br>Форму мне закрывать не надо.<br><br>>И если оперативной памяти достаточно, то никаких замедлений не должно >чуствоваться. иначе свап на диск идёт.<br><br>Вот такое впечатление, что после некоторого времени работы система этим свапом и занимается. Долго и упорно. На разных машинах. Памяти там вообще-то вполне достаточно.<br><br><br>Вопрос остался. Кто-нибудь еще может чем-то поделиться?<br>

debil
читатель
офлайн
Дата регистрации: 20.08.2007
Сообщений: 134
Пост №4
 
21.08.2008 23:08

Назначить фиксированный размер свопа (физическая память х 2), можно поставить какую нить утилитку с поддержкой командной строки в шедулер чтоб оптимизировал память, использовать минимум переменных и временных таблиц в коде...

Daedal
читатель
офлайн
Дата регистрации: 20.09.2004
Сообщений: 632
Пост №5
 
22.08.2008 05:55

>Это Вы про те переменные, которые присваиватся через "СоздатьОбъект"? Так они же в цикле автоматически <br>>переназначаются. И что?<br>>А больше я никаких ссылок не создаю, как мне представляется.<br>><br>Если переназначаются, то старые удаляются.<br>И вообще не туда копаете. не там ищете. Документы просто так в памяти не остаются. <br>Смотрите алгоритм работы и как обрабатываются данные. <br>Проблема с замедлением работы именно в алгоритме.

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №6
 
22.08.2008 16:30

Если не освобождается память после просмотра документа и последующего его закрытия, то попробуйте свернуть и через пару секунд развернуть окно программы. Если нужно одновременно держать множество документов открытыми, то ничего не поделаешь. Вообще очень странно, что 1С (кстати, 7-ка или 8-ка?) так вас "достает". При самых активных действиях пользователя с документами в 8-ке УПП еще не приходилось наблюдать выделение более 700М под процесс, а это при текущих ценах на оперативную память не такая уж и проблема (1Г памяти на компьютере почти норма).

Alexandr VA
читатель
офлайн
Дата регистрации: 07.01.2007
Сообщений: 1666
Пост №7
 
23.08.2008 13:39

Увы, как раз на практике в значительном числе "контор" есть нелепая "норма" где-то от силы 256 Мб оперативки для машины в сети. Даже если на ней стоит ХР-проф и еще Офис-2007.<br>И можно до-о-о-олго объяснять и бухам, и системщикам, и начальникам, что это - не дело и копеечный вопрос - решаться может тоже до-о-о-олго...<br><br>А то еще бывает экзотика - размер файла подкачки 0 !!!<br><br>И все недоумевают: чего это виснет 1-ска и пр...<br>

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №8
 
25.08.2008 08:25

Ну тогда нужно задать встречный вопрос Ульяне А. - сколько установлено оперативной памяти на вашем "суперзагруженном" компьютере?

Alexandr VA
читатель
офлайн
Дата регистрации: 07.01.2007
Сообщений: 1666
Пост №9
 
25.08.2008 20:50

> Ну тогда нужно задать встречный вопрос Ульяне А. - сколько установлено оперативной памяти на вашем "суперзагруженном" компьютере?<br><br><br>Тогда уж и еще вопрос - а сколько свободного места на СИСТЕМНОМ диске.<br><br>Тоже была мода пару-тройку лет назад: винч гигов на 70 "резали" на логические, да так, что системному оставляли 2-4 всего.... И еще туда же, в Program Files не только оболочку 1с запихивали, но и базы тоже...

impuls
читатель
офлайн
Дата регистрации: 24.11.2005
Сообщений: 1798
Пост №10
 
27.08.2008 09:41

Это Вы про те переменные, которые присваиватся через "СоздатьОбъект"? Так они же в цикле автоматически переназначаются. И что?<br>А сама оп. "СоздатьОбъект" у Вас, случайно, не в теле цикла (тем более документа конкретного вида)?

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация