Помощь - Поиск - Пользователи - Календарь
Полная версия: Узнать объем оперативной памяти для программы по коду на АЯ
Форум «Всё о Паскале» > Другое > Свободное общение
Sansei4
Как на основании текста программы на алгоритмическом языке определить требуемый объем рабочей области оперативной памяти?
andriano
Просуммировать произведения длин массивов на размер данных.
Это грубо. И, строго говоря, справедливо только для статически распределяемой памяти.
Для определения объема используемой динамической памяти нужно отслеживать выполнение программы.
Но нужно отметить, что в случае динамического выделения памяти (а именно этот механизм является основным) сам объем может зависеть от характера обрабатываемых данных.
Например, если программа обрабатывает изображение, то в большинстве случаев выделенный объем памяти будет кратен размеру изображения.
Sansei4
а переменные, длина строки тоже учитывается?
Archon
Учитываются, но вообще-то говоря, всего этого недостаточно. Сама программа тоже занимает место в памяти. А еще есть стек. В общем случае, если не ошибаюсь, получается так: сама программа + стек + куча. Размер программы по исходному коду точно предсказать сложно, если этот код не на ассемблере.
Sansei4
спасибо огромное за помощь
Lapp
М
Название темы отредактировано (Правила Форума, п.4)



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

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

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

Если тут неизвестнен знак a, то ничего сказать нельзя. А знак можно узнать только выполнением.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.