powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / куда девается мусор?
6 сообщений из 6, страница 1 из 1
куда девается мусор?
    #37217348
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garbage Collectior в C#.NET собирает мусор, поэтому объекты можно не удалять.
А как дела обстоят в раннем Бейсике? VB 6.0 и VBA. Там надо удалять? Если нет, то как без коллектора справляется? И почему C# без коллектора не справляется?
...
Рейтинг: 0 / 0
куда девается мусор?
    #37217372
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В VB(A) имеется механизм очистки памяти от переменных и объектов, когда на них нет ссылок (т.е. с уничтожением ссылки программно или неявно по завершении области видимости). Само собой, завершение программы завершает области видимости всех переменных и зачищает память.
Memory leak на VB(A) - явление редкое, и обычно это явный косяк разработчика. Типа двух структур, в каждой из которых есть компонент - вторая структура, и после любого удаления таких переменных у каждой ещё останется ссылка на неё из второй переменной.
...
Рейтинг: 0 / 0
куда девается мусор?
    #37218092
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Charles WeylandGarbage Collectior в C#.NET собирает мусор, поэтому объекты можно не удалять.
А как дела обстоят в раннем Бейсике? VB 6.0 и VBA. Там надо удалять? Если нет, то как без коллектора справляется? И почему C# без коллектора не справляется?

Почему это С# не справляется без коллектора? Коллектор периодически разбирает мусор, незаметно для вас. Даже если вы написал obj = nothing, то и это не факт, что произойдёт сбор мусора. А в VB(A) напиши Set obj = Nothing - и от твоей переменной ничего не останется. :)
...
Рейтинг: 0 / 0
куда девается мусор?
    #37218789
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NullUzerCharles WeylandGarbage Collectior в C#.NET собирает мусор, поэтому объекты можно не удалять.
А как дела обстоят в раннем Бейсике? VB 6.0 и VBA. Там надо удалять? Если нет, то как без коллектора справляется? И почему C# без коллектора не справляется?

Почему это С# не справляется без коллектора? Коллектор периодически разбирает мусор, незаметно для вас. Даже если вы написал obj = nothing, то и это не факт, что произойдёт сбор мусора. А в VB(A) напиши Set obj = Nothing - и от твоей переменной ничего не останется. :)
Если у C# убрать коллектор - то будет происходить утечка памяти - я это имел в виду.
У VB6 коллектора нет. Тем не менее, заботиться об удалении объектов из памяти не надо. Как так?
...
Рейтинг: 0 / 0
куда девается мусор?
    #37219156
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У C# нельзя убрать сборщик мусора, точнее даже не у C#, а .NET CLR . Сборщик нужен для оптимизации работы всей программы. Весь фрейморк завязан на классах, создание классов происходит постоянно. Если же удалять классы после того, как они уже не нужны - то на это нужно время, и падает производительность. Удаление ненужных объектов будет производиться во время, когда программа "простаивает" и других случаях. В VB6 нет сборщика, так как среда VB сама заботится об ссылках на объекты, и чистит память когда нужно.
...
Рейтинг: 0 / 0
куда девается мусор?
    #37219237
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Charles WeylandЕсли у C# убрать коллектор - то будет происходить утечка памяти - я это имел в виду.
У VB6 коллектора нет. Тем не менее, заботиться об удалении объектов из памяти не надо. Как так?Есть у VB6 уборка мусора, есть. Но в VB6 она срабатывает сразу как только объект становится не нужным.
А в .Net сборка мусора отложенная - там объект подлежащий удалению просто помечается как "удаленный" и все. А потом, когда программа завершает активную работу и начинает ждать следующей команды от пользователя - просыпается сборщик и уже физически освобождает все ранее помеченные к удалению куски памяти.
Пометить кусок памяти как освобожденный быстрее чем физически его чистить, отсюда все эти сборщики и создаются. В некоторых системах (в тех же .Net и Java) они есть по умолчанию. В других их можно писать специально.
Короче говоря, читай и просвещайся: http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / куда девается мусор?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]