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