![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объем памяти занимаемый приложением [D5, D7, Win2k, WinXP]
rds_home © (2006-10-21 19:18:00)Добрый вечер.
Есть код:
program notes;
uses
windows;
var
ExitFlag: boolean;
begin
ExitFlag:=false;
repeat
Sleep(100);
until ExitFlag;
end.
при запуске это занимает в памяти более мегабайта.
Вопрос1: Как это понимать?
Вопрос2: Как сделать меньше?
Германн (2006-10-22 02:37:00) [1]
> Vovan#1 (21.10.06 22:40) [13]
>
> 2 Percent (21.10.06 21:30) [12]:
>
> Как определить реальный объём требуемой памяти?
>
Дурацкий вопрос, имхо. Или неверно сформулированный.
В обоих случаях - не имеющий реального смысла в Windows. Имхо.
Vovan#1 (2006-10-22 00:51:00) [2]2 Percent:
Чего ещё прочитал?
Percent (2006-10-21 23:38:00) [3]Как определить реальный объём требуемой памяти?
4 GB на каждый процесс
Vovan#1 (2006-10-21 23:26:00) [4]Или погрузить память в мензурку с жидкостью и вычислить вытесненный объём. Почти не сомневался, что клуб заговорщиков Делфи-сакс ответит именно так. Впору говорить делфи-программам: "Всё жрёте и жрёте, и жрёте, уже не можете, а жрёте. Жрать не надоело?" Это про память.
Percent (2006-10-21 23:07:00) [5]Как определить реальный объём требуемой памяти?
Надо реальную высоту требуемой памяти умножить на реальную ширину, умноженную на реальную длину.
Anatoly Podgoretsky (2006-10-21 22:45:00) [6]Какой именно памяти?, кроме того это динамический процесс.
Vovan#1 (2006-10-21 22:40:00) [7]2 Percent (21.10.06 21:30) [12]:
Как определить реальный объём требуемой памяти?
Percent (2006-10-21 21:30:00) [8]Вопрос1: Как это понимать?
В ОС Windows большинство программ линкует динамически подключаемые библиотеки (kernel32.dll, user32.dll и пр.). Эти библиотеки отображаются в адресное пространство процесса, увеличивая объем "занятой" памяти. На самом деле, это мнимое увеличение, так как библиотеки только лишь отображаются в адресное пространство, не занимая при этом реальной физической памяти. Вообще, память в большинстве современных многозадачных ОС - виртуальная... Так что вопрос изначально поставлен некорректно...
Вопрос2: Как сделать меньше?
1. Не загружать библиотеки.
2. Писать под DOS.
3. Забить на программирование.
Джо (2006-10-21 21:03:00) [9]> [9] Anatoly Podgoretsky © (21.10.06 21:00)
>
> > пишу одну прогу, которая будет постоянно висеть в памяти.
>
> Это затруднительно, а система знает об этом?
Ну, все-таки, не сказано-ж: "в оперативной" :)
Anatoly Podgoretsky (2006-10-21 21:03:00) [10]Память она разная бывает, врядли ты работает с оперативной памятью или на уровне системы фиксируешь свою программу в оперативной памяти.
Anatoly Podgoretsky (2006-10-21 21:00:00) [11]
> пишу одну прогу, которая будет постоянно висеть в памяти.
Это затруднительно, а система знает об этом?
Джо (2006-10-21 20:54:00) [12]> при запуске это занимает в памяти более мегабайта.
А сколько нужно?
Kolan (2006-10-21 20:53:00) [13]> 1
> бредовый код
> Эксперимент :)
Эксперимент неверный... На чистом проекте проверь...
Джо (2006-10-21 20:53:00) [14]> [5] rds_home (21.10.06 20:49)
Хм. Сначала показывается бредовый код и спрашивается: "почему он занимает в памяти столько-то?". Затем оказывается, что речь идеть о совсем ином коде.
rds_home (2006-10-21 20:49:00) [15]Я должен показать весь код ?
Kolan (2006-10-21 20:34:00) [16]Что вот как пустое приложение с приведенным кодом 8 метров занимает?
rds_home (2006-10-21 20:30:00) [17]Именно программа, а не сервис
rds_home (2006-10-21 20:30:00) [18]Dmitrij_K (21.10.06 19:53) [1]
1
бредовый код
Эксперимент :)
2
зачем?
Чем меньше тем лучше :)
пишу одну прогу, которая будет постоянно висеть в памяти. Сейчас занимает от 6 до 8 мб. Хочется намного меньше :)
Dmitrij_K (2006-10-21 19:53:00) [19]
> Есть код:
бредовый код
> Как это понимать?
резервирует память, на всякий случай
> Как сделать меньше?
зачем?