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

1С:Предприятие ::

Метки:Встроенный язык

Нужно ли освобождать память переменных?

Я
   Nerian
 
17.08.04 - 14:51
Вопрос воопщемто странный. Меня один человек уверяет что это обязательно нужно делать но он ни знает как. А я в принципе не пойму зачем. Мы ведь живём не в 90ые годы когда везде был Asm/C и были фунции типа free(); Дык вот вопрос: нужно/ненужно и если нужно то как? и зачем.
 
  Рекламное место пустует
   SnarkHunter
 
1 - 17.08.04 - 14:52
Думаешь сейчас free уже отменили?
   Nerian
 
2 - 17.08.04 - 15:00
Нет не кто не говорил что его отменили, сейчас во всех нормальных языках программирования от прикладных до системных, скриптовых и других реализовали так называюмую Garbage-collection, которая следит за всеми этими тонкосмями. Воопщем если есть код:
Перем b;
b = 123;
Сообщить("b");
и переменная b нигде больше не будет использована кроме как в этом коде/ допустим временные данные. Нужно ли освобождать память?
   GrayT
 
3 - 17.08.04 - 15:22
По идее локальные переменные уничтожаются сами при выходе из области видимости. С глобальными переменными сложнее. Я привык освобождать ссылки на некотоые объекты (ХБазе, ВК) (просто присваиваю им ноль или "";
Одна ВК у меня постоянно вызывала ошибку 1С при закрытии внешнего отчета, покуда я ее в 0 не загонал перед закрытием.
   Nerian
 
4 - 17.08.04 - 15:39
Тоесть получаеться ты зануляешь глобальные переменные в 0? Это даже как то странно. Ведь если был массив какой нить Мас Цвета(10); И ты напишешь Мас = 0 то врятли память занитая удалиться, скорее будет ошибка. Думаю так же и с объектами. Или ты имеешь ввиду что то типо большой объект занулить тем самым он как бы станет маленьким как целое число?
   Рупор абсурда
 
5 - 17.08.04 - 15:51
Длинные строки, объекты "текст", большие ТЗ и СЗ, ОЛЕ объекты и пр. муть лучше убивать, чтоб не мучились ...
   Nerian
 
6 - 17.08.04 - 16:01
А каким оброзом это делать? для переменных/объектов/длинных строк
   Рупор абсурда
 
7 - 17.08.04 - 16:38
Присвоить пустое значение ...
   Nerian
 
8 - 17.08.04 - 18:12
мне кажеться ни какое это не освобождение. Правда волшебник? :)
   SnarkHunter
 
9 - 17.08.04 - 18:14
Перекрестись...
   romix
 
10 - 17.08.04 - 19:21
Юзать глобальные переменные вообще-то плохо.
Но если юзаешь, и там что-то большое (типа таблицы значений на миллион строк), то чтобы освободить память действительно надо присвоить ="", =0 или =ПолучитьПустоеЗначение().
 
  Рекламное место пустует
   Guk
 
11 - 17.08.04 - 20:30
Вы заметили. На мисте бенефис romix'а...
   kadr
 
12 - 18.08.04 - 07:21
Если мне не изменяет память, то при присвоении переменным пустого значения память высвобождается (это описано в руководстве). А вообще у тебя реально возникали проблемы с нехваткой памяти?


Список тем форума
  Рекламное место пустует
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует