IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Узнать объем оперативной памяти для программы по коду на АЯ, Помогите, срочно надо!
Sansei4
сообщение 6.04.2011 18:58
Сообщение #1





Группа: Пользователи
Сообщений: 0
Пол: Мужской

Репутация: -  0  +


Как на основании текста программы на алгоритмическом языке определить требуемый объем рабочей области оперативной памяти?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 6.04.2011 21:06
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Просуммировать произведения длин массивов на размер данных.
Это грубо. И, строго говоря, справедливо только для статически распределяемой памяти.
Для определения объема используемой динамической памяти нужно отслеживать выполнение программы.
Но нужно отметить, что в случае динамического выделения памяти (а именно этот механизм является основным) сам объем может зависеть от характера обрабатываемых данных.
Например, если программа обрабатывает изображение, то в большинстве случаев выделенный объем памяти будет кратен размеру изображения.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sansei4
сообщение 6.04.2011 21:12
Сообщение #3





Группа: Пользователи
Сообщений: 0
Пол: Мужской

Репутация: -  0  +


а переменные, длина строки тоже учитывается?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Archon
сообщение 6.04.2011 21:34
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Учитываются, но вообще-то говоря, всего этого недостаточно. Сама программа тоже занимает место в памяти. А еще есть стек. В общем случае, если не ошибаюсь, получается так: сама программа + стек + куча. Размер программы по исходному коду точно предсказать сложно, если этот код не на ассемблере.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sansei4
сообщение 6.04.2011 21:47
Сообщение #5





Группа: Пользователи
Сообщений: 0
Пол: Мужской

Репутация: -  0  +


спасибо огромное за помощь
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 7.04.2011 1:04
Сообщение #6


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


М
Название темы отредактировано (Правила Форума, п.4)



Цитата(Sansei4 @ 6.04.2011 19:58) *
Как на основании текста программы на алгоритмическом языке определить требуемый объем рабочей области оперативной памяти?

Ответ очень простой. Если не выполнять (и не моделировать выполнение), то это невозможно.

if a>0 then GetMem(b,10) else (b,100000);

Если тут неизвестнен знак a, то ничего сказать нельзя. А знак можно узнать только выполнением.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 28.04.2024 22:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"