Общий размер локальных переменных в функции плюс максимальное использование стека от вызываемых
Примечание
Используйте Bug Finder вместо Code Prover для вычислительных метрик кода. Поддержка вычислительных метрик кода в Code Prover будет удалена в будущем релизе. См. Вопросы совместимости.
Об этой метрике сообщают в анализе Code Prover только.
Эта метрика обеспечивает осторожную оценку использования стека функцией. Метрика является суммой этих размеров в байтах:
Максимальное значение от использований стека функциональных вызываемых. Расчет использует максимальное использование стека каждого вызываемого.
Например, в этом примере, максимальном использовании стека func
совпадает с максимальным использованием стека func1
или func2
, какой бы ни больше.
void func(void) { func1(); func2(); }
Если вызовы функции находятся в различных ветвях условного оператора, эта метрика рассматривает ветвь с самым большим использованием стека.
Анализ делает оценку размера стека позже, когда это решило, какие вызовы функции на самом деле происходят. Например, если вызов функции происходит в недостижимом коде, размер стека не отвечает на звонок во внимание. Анализ может также учесть вызовы через указатели функции.
Ваше фактическое использование стека может отличаться от метрического значения.
Некоторые переменные хранятся в регистрах вместо на стеке.
Ваш компилятор выполняет переменный анализ живучести, чтобы включить определенную оптимизацию памяти. При оценке этой метрики, Polyspace® не рассматривает эту оптимизацию.
Ваш компилятор использует дополнительную память во время вызова функции. Например, компиляторы хранят адрес, к которому выполнение возвращается после вызова функции. При оценке этой метрики Polyspace не рассматривает это скрытое использование памяти.
Компиляторы оптимизируют временные переменные по-разному. Эта метрика исключает временные переменные. Только переменные, которые явным образом объявляются пользователем, рассматриваются.
Однако метрика обеспечивает обоснованную оценку использования стека.
Чтобы определить размеры основных типов, программное обеспечение использует ваши технические требования для Target processor type (-target)
. Метрика учитывает #pragma pack
директивы в вашем коде.
Группа: Функция |
Акроним:
MAX_STACK |
Метрика HIS: нет |
Minimum Stack Usage
| Program Maximum Stack Usage
| Higher Estimate of Size of Local Variables
| Calculate code metrics (-code-metrics)