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