![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
Darkmaster |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Возникла небольшая проблемка с память, в моей СУБД. Проблема в том что есть dataGridView привязанный к dataTable, есть момент где нужно отключиться от данного dataTable, присвоив свойству dataGridView.DataSource = null потом мы снова присваиваем таблицу:
проблема в том что после того как мы венули гриду таблицу приложение занимает больше ОЗУ если выполнить данную процедуру несколько то память увеличиться еще. Не могу понять почему, ведь я просто отсеодиняю от грида таблицу ничего не удаляя и присоединяю ее же... --------------------
GeekTV - интернет-телевидение для гиков |
|||
|
||||
zaver |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 15.8.2005 Репутация: нет Всего: 3 |
попробуй перед тем, как делаешь dataGridView1.DataSource = null; очистить DataSource вручную - просто удали все dataGridView1.Rows.Clear(). а если это не получится, то вызывай принудительно сборщик мусора
|
|||
|
||||
Darkmaster |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
пробовал собиратать мусор при помощи
Вставлял и перед datasource и после а также после того как возвращаем таблицу в DataSource. Ну скажем так небольшой результат есть но не очень, реально помогает если создать кнопку которая собирает мусор и после моей функции вызвать ее несколько раз. В чем же дело? --------------------
GeekTV - интернет-телевидение для гиков |
|||
|
||||
zaver |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 15.8.2005 Репутация: нет Всего: 3 |
в том что ты не там вызваеш сборщик мусора, если с кнопкой работает, а без нее не очень.
|
|||
|
||||
tol05 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
достаточно открыть рефлектором свойство DataGridView.DataSource и пройтись по стеку вызовов. И можно увидеть, что биндинг даже одних и тех же данных к контролу требует (каждый раз!) создания множества временных объектов (хотя бы тех же DataGridViewRow's и DataGridViewColumn's), чтения атрибутов и т.д. и т.п. Еще лучше поюзать профайлер, например CLRProfiler... Я думаю, что описывать подробности, что, сколько и когда создается - не нужно. Просто Darkmaster, поверь, что память расходуется и неплохо ![]()
Все просто. В общих словах так: Есть объекты, которые поддерживают финализацию, например объекты строк и стобцов самого грида, они же создаются при каждом биндинге, а когда ты null присваиваешь - уничтожаются. Так вот, они реально удаляются при втором (а не первом!) сборе мусора. При первом сборе отрабатывает финализатор и все... Поэтому кое-где модно использовать такое код:
всем советую... P.S. Darkmaster, не углядел твой код сбора мусора ![]() Это сообщение отредактировал(а) tol05 - 8.9.2007, 22:17 -------------------- На хорошей работе и сны хорошие снятся. |
||||||
|
|||||||
zaver |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 15.8.2005 Репутация: нет Всего: 3 |
хороший совет
|
|||
|
||||
Darkmaster |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Спасибо большое! Очень помогло + новые знания щас буду углубляться в эту тему....
--------------------
GeekTV - интернет-телевидение для гиков |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |