У меня есть очень большой проект C, который в настоящее время существует в решении Visual Studio. Я использую Visual Studio 2015. Каждый компонент проекта содержится в собственном проекте Visual Studio. У каждого компонента есть функции "init" и "run", которые вызываются в цикле while. В частности, у меня есть один компонент, где я хочу измерить размер стека его функции «запустить». В идеале я бы изменил конкретный параметр этой функции запуска и посмотрел, как это повлияет на память в дальнейшем (поэтому запустите несколько профилирования). Для GCC я обнаружил, что вы можете использовать fstack-usage, и это дает почти то, что я хотел бы: потребление памяти (то есть размер стека) каждой функции в программе. Однако большинство решений, которые я нашел в Интернете, применимы только к системам Linux. Я также настоятельно предпочел бы не переносить свое решение VS на другую платформу.
Однако в VS я не нашел инструмента, API или чего-то подобного. Профилировщик производительности VS вроде делает то, что я хочу, но он не предоставляет память каждой функции, а только память всего процесса, что не идеально для профилирования компонента. на основе проекта. Есть ли инструмент или метод в Visual Studio, с помощью которого я могу измерить размер стека функций для всех возможных функций? Я не против написать свой собственный инструмент, но я бы предпочел что-то относительно простое.
Здесь я также должен указать, что мне не нужна вся память процесса или размер стека вызовов. т.е. он должен распечатать что-то вроде этого:
Function Name | Stack Size
--------------|------------
a_Run | 10.5 KB
b_Run | 5.7 KB
Спасибо!