Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2011, 19:24   #1
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
Восклицание очистка RAM

ситуация такая. допустим у нас есть главная форма form1 и форма form2, которая открывается с первой формы нажатием кнопки.
Код:
form2 f2 = new form2();
f2.ShowDialog();
на форме form2 стоит кнопка button1, на которой закреплено событие
Код:
this.Close();
допустим, сразу после запуска приложения, оно кушает 1000кб оперативной памяти. после открытия формы размер потребляемой памяти увеличивается до 1100кб. после нажатия кнопки button1 форма form2 закрывается, но размер потребляемой памяти не уменьшается, а то иногда и увеличивается на пару килобайт. пробовал диспозить form2 и при нажатии на кнопку button1 и после выполнения f2.ShowDialog() - оп память не чистится.

как решить проблему. ибо если пользоваться программой весь день, то не хватит ram памяти
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Старый 11.04.2011, 03:24   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

в принципе, надо сильно постараться, чтобы на шарпе терять память, так что, думаю, всё там в порядке:

1) чем меряете, диспетчером? в топку
2) GC не обязан мгновенно освобождать память. захочет, освободит
3) накликайте хотя бы до двухкратного увеличения потребляемой памяти, тогда, возможно, будет о чём говорить
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 11.04.2011, 07:22   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
Сообщение от TaTT DoGG Посмотреть сообщение
ибо если пользоваться программой весь день, то не хватит ram памяти
Хватит, память освобождается тогда когда это удобней системе, а не Вам лично.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 11.04.2011, 12:32   #4
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Если уж никак потерпеть нельзя, то можно самому вызвать
Код:
GC.Collect();
Hollander вне форума Ответить с цитированием
Старый 11.04.2011, 13:33   #5
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

я в принципе и вызывал раньше.
Код:
GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
думал просто есть более гуманный способ
спасибо всем
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать сколько RAM хавает процесс WOWka777 Общие вопросы C/C++ 5 01.02.2011 17:02
проблемы с RAM в Vista Betty Windows 5 29.08.2009 02:26
вирус в RAM Betty Операционные системы общие вопросы 2 25.08.2009 18:44
Скоростное копирование файлов через RAM 3D Hunter Общие вопросы Delphi 9 03.07.2009 19:41
Temp INI in RAM Altera Общие вопросы Delphi 5 17.02.2008 07:25