Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Очистка оперативы Добавлено: 29.04.04 12:20  

Автор вопроса:  Alexander

нет у когонибудь примерчика как очистить оперативку?

и сопутственно взять оттуда информацию из определенного адреса?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Vilya



ICQ: 232995216 

Вопросов: 12
Ответов: 63
 Web-сайт: нету
 Профиль | | #1
Добавлено: 30.04.04 14:09

Ща я рааскажу историю, как я когда-то совсем случайным образом сделал такую прогу. Дело было давно, когда я начинал только программить. Я делал прогу для рисования мультиков, типа анимированного Paint'а. Конечно я тогда ничо особово делать не умел, поэтому каждый кадр у меня лежал в Picture-Box'е. 5-секундная анимация у меня тогда занимала 60 МБ :) . И вот при одном из запусков программыя заметил, что почему-то после загрузки анимации и закрытии программы у меня чистилась оперативка. Ну я не долго думая Сделал похожую прогу, которая загружает 1-мегабайтный рисунок 100 раз, потом их отгружает и чистится опреатива. У меня тогда был офигенный восторг, потому что у меня тогда самая крутая прога была типа калькулятора. Только серез месяц я понял, как она работает: В оперативе лежит много неиспользуемого хлама нулевого приоритета, и когда я загружаю свои 100 одинаковых картинок, Винда думает, что они очень нужные и отгружает из оперативы всю инфу нулевого приоритета. Потом я отгружаю свои картинки, и оператива становится очищенной. Кроме нулевого приоритета по-моему неотчего больше чистить. Вот и сказки конец..

Ответить

Номер ответа: 2
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #2 Добавлено: 30.04.04 14:47

Поясни. Хочешь освободить память другого процесса что ли?

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 02.05.04 17:11

Читать/писать память другого процесса ReadProcessMemory/WriteProcessMemory, читать непосредственно оперативную память возможно через CreateFile с именем устройства RAM, либо через создание драйвера

Ответить

Номер ответа: 4
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #4
Добавлено: 02.05.04 23:56

2Vilya: А как ты узнавал сколько в это время в оперативке собственно хлама?

Ведь по сути всё что нужно в этот момент скидывалось на диск, а потом долго(!) читалось опять в память.

Я собственно тоже надавно столкнулся с этой проблемой, точнее с таким вариантом очистки памяти, но после того как все проги активируются всё опять встаёт на свои места и память почти что не освобождается...

Ответить

Номер ответа: 5
Автор ответа:
 Vilya



ICQ: 232995216 

Вопросов: 12
Ответов: 63
 Web-сайт: нету
 Профиль | | #5
Добавлено: 03.05.04 21:32

После долгой работы и открытии/закрытии программ оператива очищается, но вот когда очищаешь при множестве открытых программ тогда всё скидывается в виртуалку.

Ответить

Номер ответа: 6
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 08.05.04 00:29

Прикол состоит в том, что глупая Винда не определяет, сколько программе нужно оперативы, а на всякий случай резервирует под нее сразу дофига. Поскольку не все страницы юзаются процессом, тупая Винда иногда свопит эти страницы, только определяет это она уж больно плохо и не свопит без необходимости (я вообще не уверен, что она свопит именно пустые страницы преимущественно :D). Поэтому можно самому определять, какие страницы пустые и свопить их, а можно грохать пустые страницы у процесса из памяти (только не грохнуть случайно те страницы, которые ему вдруг звхочецца поюзать). А можно тупо, как это делают большинство программ, просить у Винды дочерта памяти, Винда сразу начнет свопить все подряд, думая что твоему процессу вся эта память позарез нужна, после чего всю память освободить и Винда по мере выполнения других процессов будет загружать из свопа именно те страницы, которые юзаются. Только она потом все равно будет свопать память процессов черт-знает-как и память снова станет похожа на винигрет.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам