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