Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Dragokas
Эксперт WindowsАвтор FAQ
16966 / 7051 / 856
Регистрация: 25.12.2011
Сообщений: 10,861
Записей в блоге: 16
#1

Очистка оперативной памяти, не используемой системой

11.01.2013, 19:16. Просмотров 1260. Ответов 7
Метки нет (Все метки)

Допустим, на ОС выполняются процессы.
Некоторые из них могут дать сбой -> Crash,
другие криво написаны и после их завершения часть памяти, используемая ними ранее, "не высвобождается".

Есть программы, позволяющие "очистить" неиспользуемую память.
Меня интересуют принципы работы таких программ,
а также хочу увидеть готовый код реализации подобной задачи и любые подсказки.

...И простите за скудную терминологию, в работе с памятью мало чего знаю,
хочется и учится, и готовое попробовать (главное систему не повесить =).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2013, 19:16
Ответы с готовыми решениями:

Подсчет размера используемой приложением памяти
Добрый вечер, я написал 2 приложения и мне нужно узнать какое по памяти лучше....

Показать размер памяти, используемой конкретным процессом
Пытаюсь сделать программу которая будет показывать кол-во используемой памяти...

Определение размера динамической памяти, используемой процессом
Доброго всем времени суток! В общем задача следующая... Я, с помощь функции...

Снимок оперативной памяти
Возможно ли на си++ написать консольную программу, которая бы делала снимок ОП,...

Данные из оперативной памяти
Подскажите пожалуйста, как нам перехватить данные любого приложения, которые...

7
Vourhey
Почетный модератор
6492 / 2266 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
11.01.2013, 19:23 #2
Dragokas, система освободит память по завершению работы процесса. Не важно, крэш это был, или что-то еще.
0
WhiteP
611 / 209 / 32
Регистрация: 20.11.2012
Сообщений: 433
Завершенные тесты: 1
11.01.2013, 19:27 #3
Цитата Сообщение от Dragokas Посмотреть сообщение
другие криво написаны и после их завершения часть памяти, используемая ними ранее, "не высвобождается"
Система освобождает всю память, занятую процессом автоматически после его завершения. Если речь про волшебные программы, которые освобождают память - то они просто добиваются того, что болшАя часть будет скинута в своп...
1
Dragokas
Эксперт WindowsАвтор FAQ
16966 / 7051 / 856
Регистрация: 25.12.2011
Сообщений: 10,861
Записей в блоге: 16
11.01.2013, 19:27  [ТС] #4
Vourhey, из того, что я знаю, я так и представлял.

Т.е. по сути, так как я написал - не бывает?

Когда-то запускал подобные программы, все таки по общей занимаемой памяти
было видно - на какие-то 20 Мб. стало больше свободной. Вот и интересуюсь.

Вообщем, нужно это для сервера (все, что могли из служб вырубили).
Все равно упираемся в предел. Чужих тулзов запускать не хотелось. Хотя бы знать , что они творят с системой при этой "якобы очистке".

WhiteP, а, теперь понятно.
0
Vourhey
Почетный модератор
6492 / 2266 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
11.01.2013, 19:36 #5
Цитата Сообщение от Dragokas Посмотреть сообщение
Хотя бы знать , что они творят с системой при этой "якобы очистке".
Как еще вариант, "оно" может просто сбрасывать кэш или его часть.
0
Dragokas
Эксперт WindowsАвтор FAQ
16966 / 7051 / 856
Регистрация: 25.12.2011
Сообщений: 10,861
Записей в блоге: 16
11.01.2013, 19:38  [ТС] #6
А возможно ли и на сколько сложен принцип реализации:

ограничить при запуске или у уже запущенного процесса максимальную квоту объема используемой ним памяти в надежде, что при ее превышении ОС будет использовать файл подкачки.
И в результате - на сколько стабильное поведение от процесса можно в этом случае ожидать?
0
Vourhey
Почетный модератор
6492 / 2266 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
11.01.2013, 19:55 #7
Цитата Сообщение от Dragokas Посмотреть сообщение
ограничить при запуске или у уже запущенного процесса максимальную квоту объема используемой ним памяти
Почитай мсднчик на тему работы с задачами. В частности: SetInformationJobObject апи. Навряд ли он полезет в своп, если ты ему ограничил объем памяти. Думаю, что лимитам пофигу, где ты собрался выделять память, виртуальное пространство, как единое целое. Но, хз, могу и ошибаться.

Добавлено через 11 минут
Цитата Сообщение от Dragokas Посмотреть сообщение
на сколько стабильное поведение от процесса можно в этом случае ожидать?
так это, как вы закодите ))) если процесс при нехватке памяти будет говорить "асталависта, бейби" и вешаться/падать/барагозить, то - нестабильной. А если вы найдете выход, что делать, когда очередной new откажет на вас жениться, то - стабильной. Главное багов поменьше
1
Vourhey
Почетный модератор
6492 / 2266 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
13.01.2013, 23:33 #8
Еще SetProcessWorkingSetSize посмотри.
1
13.01.2013, 23:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2013, 23:33

Определить производителя оперативной памяти
Подскажите, пожалуйста, какими способами можно выполнить определение...

Замерить объем оперативной памяти
Можно ли средствами WinAPI замерить объем оперативной используемой(занятой)...

Запустить файл в оперативной памяти
Вобщем озадачили нас на военной кафедре вот как: сказали раз уж мы специалисты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru