Общий размер локальных переменных в функции с учетом вложенных возможностей
Эта метрика предоставляет оптимистическую оценку общего размера локальных переменных в функции. Метрика является суммой следующих размеров в байтах:
Размер возвращаемого значения функции
Размеры параметров функции
Размеры локальных переменных
Предположим, что функция имеет определения переменных во вложенных возможностях следующим образом:
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 |
ЕГО Метрика: Нет |