Как на основании текста программы на алгоритмическом языке определить требуемый объем рабочей области оперативной памяти?
andriano
7.04.2011 1:06
Просуммировать произведения длин массивов на размер данных. Это грубо. И, строго говоря, справедливо только для статически распределяемой памяти. Для определения объема используемой динамической памяти нужно отслеживать выполнение программы. Но нужно отметить, что в случае динамического выделения памяти (а именно этот механизм является основным) сам объем может зависеть от характера обрабатываемых данных. Например, если программа обрабатывает изображение, то в большинстве случаев выделенный объем памяти будет кратен размеру изображения.
Sansei4
7.04.2011 1:12
а переменные, длина строки тоже учитывается?
Archon
7.04.2011 1:34
Учитываются, но вообще-то говоря, всего этого недостаточно. Сама программа тоже занимает место в памяти. А еще есть стек. В общем случае, если не ошибаюсь, получается так: сама программа + стек + куча. Размер программы по исходному коду точно предсказать сложно, если этот код не на ассемблере.
Sansei4
7.04.2011 1:47
спасибо огромное за помощь
Lapp
7.04.2011 5:04
М
Название темы отредактировано (Правила Форума, п.4)
Цитата(Sansei4 @ 6.04.2011 19:58)
Как на основании текста программы на алгоритмическом языке определить требуемый объем рабочей области оперативной памяти?
Ответ очень простой. Если не выполнять (и не моделировать выполнение), то это невозможно.
if a>0 then GetMem(b,10) else (b,100000);
Если тут неизвестнен знак a, то ничего сказать нельзя. А знак можно узнать только выполнением.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.