Общий размер локальных переменных в функции, принимая вложенные осциллографы во внимание
Эта метрика обеспечивает оптимистическую оценку общего размера локальных переменных в функции. Метрика является суммой следующих размеров в байтах:
Размер функционального возвращаемого значения
Размеры параметров функции
Размеры локальных переменных
Предположим, что функция имеет определения переменной во вложенных осциллографах можно следующим образом:
type func (type param_1, ...) { { /* Scope 1 */ type var_1, ...; } { /* Scope 2 */ type var_2, ...; } }
Переменная, заданная во вложенном осциллографе, не отображается вне осциллографа. Поэтому некоторое стековое пространство повторного использования компиляторов для переменных задано в отдельных осциллографах. Эта метрика обеспечивает более точную оценку использования стека для таких компиляторов. В противном случае используйте метрический Higher Estimate of Local Variable Size
. Эта метрика добавляет размер всех локальных переменных, заданы ли они во вложенных осциллографах.
Дополнительное дополнение введено для выравнивания памяти
Ваше фактическое использование стека из-за локальных переменных может отличаться от метрического значения.
Некоторые переменные хранятся в регистрах вместо на стеке.
Ваш компилятор выполняет переменный анализ живучести, чтобы включить определенную оптимизацию памяти. При вычислении этой метрики Polyspace® не рассматривает эту оптимизацию.
Ваш компилятор использует дополнительную память во время вызова функции. Например, компиляторы хранят адрес, к которому выполнение возвращается после вызова функции. При вычислении этой метрики Polyspace не рассматривает это скрытое использование памяти.
Однако метрика обеспечивает обоснованную оценку использования стека из-за локальных переменных.
Чтобы определить размеры основных типов, программное обеспечение использует ваши спецификации в Target processor type (-target)
. Метрика также учитывает #pragma pack
директивы в вашем коде.
Группа: Функция |
Акроним: LOCAL_VARS_MIN |
Метрика HIS: нет |