Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Процессы…  (Прочитано 12599 раз)
0 Пользователей и 5 Гостей смотрят эту тему.
Newbie
Гость
« : 09-11-2006 19:38 » 

Я хотел бы узнать, как можно получить инфу о том, сколь памяти “жрет” процесс в данный момент, и сколько он может занимать память максимально и минимально.
VC++ 7
Заранее благодарен.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 09-11-2006 20:08 » 

Минимальной граници нет. Максимально под процесс винда (32 разрядная) выделяет 4 гигабайта виртуальной памяти, при этом себе забирает 2 гигабайта. 2 гигабайта остается для использования. Повторяю, это виртуальная память.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Olegator
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 09-11-2006 20:20 » 

Максимально под процесс винда (32 разрядная) выделяет 4 гигабайта виртуальной памяти
64 разрядная винда может выделять больше даже на 32 разрядном процессоре?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #3 : 09-11-2006 20:32 » new

Olegator, 64 разрядную винду ты не сможеш запустить на 32 разрядном процессоре. А вообше, судя по тому, что я читал, 64 разрядная система сможет адресовать на много большее адресное пространство.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Olegator
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 09-11-2006 20:36 » 

По идее 2 в 64 степени байт. 16777216Тб.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #5 : 09-11-2006 20:48 » 

Olegator, Я сейчас не смогу точную цифирку назвать. Завтра. Сегодня слишком длинный и нудный день был.

Newbie, Кстати тоже завтра отвечу. Если есть у тебя доступ к книге Рихтера "Виндовс для профессионалов" то посмотри там. Там есть описание функций, рассказываюших сколько система выделила куч под программу.   
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Newbie
Гость
« Ответ #6 : 10-11-2006 20:54 » 

Быть такого не может
Я хотел сказать, как программно узнать и показать циферки!
Например, как показать все текущие процессы с вышеупомянутыми циферками?

Finch, cорри, если вопрос тупой,  но можно ли эту книгу скачать?

Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #7 : 10-11-2006 23:34 » 

Newbie, Прямой путь к этой книжке. Там есть подобный пример. скачать можно с библиотеки клуба https://club.shelek.ru/viewfiles.php?id=8
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
zubr
Гость
« Ответ #8 : 14-11-2006 04:53 » 

Юзай API-функцию GetProcessMemoryInfo.
Записан
Newbie
Гость
« Ответ #9 : 17-01-2007 20:16 » 

Я все еще не получил эти циферки Жаль((((((
Записан
Newbie
Гость
« Ответ #10 : 18-01-2007 11:35 » 

У кого-то есть готовый пример, очень нужно, пожалуйста...
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #11 : 19-01-2007 04:32 » 

установи с++ builder, там в примерах есть готовое решение твоей задачи, называется process info если не ошибаюсь.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
zubr
Гость
« Ответ #12 : 19-01-2007 05:06 » 

Вот пример кода, как определить сколько занимает памяти текущий процесс. Пример правда на Delphi, но думаю переведешь:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  pmc:PPROCESS_MEMORY_COUNTERS;
begin
 GetMem(pmc, SizeOf(_PROCESS_MEMORY_COUNTERS));
 pmc.cb:=SizeOf(_PROCESS_MEMORY_COUNTERS);
 If GetProcessMemoryInfo(GetCurrentProcess(), pmc, pmc.cb) then
 Application.MessageBox(PChar(IntToStr(pmc^.WorkingSetSize)+' Bytes'),
  'Memory', MB_OK or MB_ICONINFORMATION)
 else
 Application.MessageBox('Unable to retrieve memory usage structure',
  'Memory', MB_OK or MB_ICONINFORMATION);
 FreeMem(pmc);
end;
« Последнее редактирование: 16-12-2007 14:35 от Алексей1153++ » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines