4 / 4 / 0
Регистрация: 04.08.2010
Сообщений: 20
|
||||||
1 | ||||||
Увеличение используемой оперативной памяти04.08.2010, 15:32. Показов 4493. Ответов 14
Метки нет Все метки)
(
Доброго времени суток.
На C# была написана простая однокнопочная диалоговая форма. При использовании программа постоянно увеличивает объём используемой оперативной памяти, медленно но верно. Дело явно где-то в цикле, там больше ничего и нету )) вот только где, мб кто подскажет?
0
|
|
04.08.2010, 15:32 | |
Ответы с готовыми решениями:
14
Кто определяет максимальный размер используемой процессом памяти?
Использование оперативной памяти Загрузка ЦП и оперативной памяти |
2095 / 1260 / 170
Регистрация: 01.02.2009
Сообщений: 2,842
|
|
04.08.2010, 15:40 | 2 |
Я у вас выхода из цикла не увидел - следовательно цикл бесконечный. Вот и расход памяти.
1
|
4 / 4 / 0
Регистрация: 04.08.2010
Сообщений: 20
|
|
04.08.2010, 15:58 [ТС] | 3 |
в этом и задумка, программа должна постоянно висеть в памяти и контролировать наличие запущенных других двух процессов.
Почему при каждом проходе цикла количество используемой оперативной памяти увеличивается? Возможно ли как то освобождать в конце цикла использованную ненужную больше память? Добавлено через 11 минут Может быть то, что я хочу сделать реализуется как-то по другому, более правильно?
0
|
2095 / 1260 / 170
Регистрация: 01.02.2009
Сообщений: 2,842
|
|
04.08.2010, 16:05 | 4 |
Освобождением памяти занимается сборщик мусора. Вообще-то он автоматом может освободить ресурсы, занятые каким-либо процессом. Но можно его вызывать и самому. Почитайте про класс GC.
Но, имхо, думаю, что у вас не оптимально работает код.
1
|
1318 / 991 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
|
|||||||||||
04.08.2010, 16:32 | 5 | ||||||||||
будь проще
совсем не оптимально... вообще говоря, он вообще не работает) Добавлено через 4 минуты можно в конец цикла пихнуть
Добавлено через 1 минуту и НЕ надо это делать в потоке GUI !
1
|
4 / 4 / 0
Регистрация: 04.08.2010
Сообщений: 20
|
||||||
04.08.2010, 16:50 [ТС] | 6 | |||||
Вставил GC.Collect() в конец цикла, и правда перестал расти расход оперативки =) за этот совет отдельное спасибо
![]() Потом увидел вариант Mikant, мне понравилось ![]() я нупс ) имеется ввиду, что это действие от нажатия кнопки? А как тогда делать? Вызывать по кнопке функцию, которая описана в program.cs? Добавлено через 8 минут Ага туплю =) вот так же будет работать? ![]()
0
|
1318 / 991 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
|
||||||
04.08.2010, 17:13 | 7 | |||||
ну подправь
1
|
4 / 4 / 0
Регистрация: 04.08.2010
Сообщений: 20
|
|
04.08.2010, 17:23 [ТС] | 8 |
0
|
1318 / 991 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
|
|
04.08.2010, 17:30 | 9 |
английский знаешь?
http://blogs.msdn.com/b/ricom/... 71829.aspx
1
|
4 / 4 / 0
Регистрация: 04.08.2010
Сообщений: 20
|
|
04.08.2010, 18:29 [ТС] | 10 |
знаю но туго =)
можно в двух словах, почему нельзя и как нужно?
0
|
1318 / 991 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
|
|
04.08.2010, 18:35 | 11 |
а ты просто мой код пытался выполнить? ну что, увеличивается "оперативная память"?
1
|
4 / 4 / 0
Регистрация: 04.08.2010
Сообщений: 20
|
|
05.08.2010, 08:50 [ТС] | 12 |
Ага. всё равно растёт потребление, примерно по 500кб за проход цикла. Это очень много.
и да, этот код я в конец цикла вставил, не забыл ![]() Что значила фраза, что не надо этого делать в гуи? Я попробовал вынести эту функцию отдельно в файле Form1.cs и потом вызвать её по нажатию кнопки, эффект был тот же - окно программы виснет, хоть она и продолжает выполняться. Мб надо было вставить функцию в program.cs и сделать её public?
0
|
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
|
||||||
05.08.2010, 10:18 | 13 | |||||
вот еще одно решение
(вроде память не прибавляется)
1
|
1318 / 991 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
|
|
05.08.2010, 17:23 | 14 |
- false!
какая ж разница, в каком она файле живет?? просто в отдельный поток всё это уноси
1
|
4 / 4 / 0
Регистрация: 04.08.2010
Сообщений: 20
|
|
07.08.2010, 19:47 [ТС] | 15 |
Всё получилось, спасибо
![]()
0
|
07.08.2010, 19:47 | |
Помогаю со студенческими работами здесь
15
Высвобождение кешированной оперативной памяти Очистка оперативной памяти в Windows 7 Выделение большого количества оперативной памяти
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |