4 / 4 / 0
Регистрация: 04.08.2010
Сообщений: 20
|
||||||
1 | ||||||
Увеличение используемой оперативной памяти04.08.2010, 15:32. Показов 4729. Ответов 14
Метки нет (Все метки)
Доброго времени суток.
На C# была написана простая однокнопочная диалоговая форма. При использовании программа постоянно увеличивает объём используемой оперативной памяти, медленно но верно. Дело явно где-то в цикле, там больше ничего и нету )) вот только где, мб кто подскажет?
0
|
04.08.2010, 15:32 | |
Ответы с готовыми решениями:
14
Кто определяет максимальный размер используемой процессом памяти? Загрузка оперативной памяти Использование оперативной памяти Загрузка ЦП и оперативной памяти |
2096 / 1261 / 171
Регистрация: 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
|
2096 / 1261 / 171
Регистрация: 01.02.2009
Сообщений: 2,842
|
|
04.08.2010, 16:05 | 4 |
Освобождением памяти занимается сборщик мусора. Вообще-то он автоматом может освободить ресурсы, занятые каким-либо процессом. Но можно его вызывать и самому. Почитайте про класс GC.
Но, имхо, думаю, что у вас не оптимально работает код.
1
|
1322 / 995 / 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
|
1322 / 995 / 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
|
1322 / 995 / 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
|
1322 / 995 / 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
|
1322 / 995 / 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 | |
07.08.2010, 19:47 | |
Помогаю со студенческими работами здесь
15
Высвобождение кешированной оперативной памяти Очистка оперативной памяти в Windows 7 Выделение большого количества оперативной памяти Считывание конкретной ячейки из оперативной памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |