У меня есть программа (еще не реализованная), которая выполняет функцию f
несколько раз с различными параметрами и которая должна при каждом выполнении измерять максимальное потребление памяти при вызове f
.Т.е. я хочу знать, сколько памяти потребляется до вызова f
, максимальная память при f
и послезвонит f
.Измеренная память должна включать в себя и стек и кучу.
Большая часть информации, которую я смог найти, касалась профилирования памяти целых программ (что иногда включает в себя возможность увидеть использование отдельных функций) спомощь внешних программ, таких как valgrind (массив).Это не то, что я ищу.Мне нужно иметь возможность измерять использование памяти изнутри запущенной программы и особенно делать это несколько раз.
Я нашел функцию tracemalloc.get_traced_memory
для Python, которая, кажется, способнасделать работу.Однако я не уверен, является ли Python правильным языком программирования, и я бы предпочел выбрать типизированный скомпилированный язык.Из типизированных скомпилированных языков мне комфортно с C и Go, но в последнее время мне нравилось глубже смотреть на Rust.Предлагает ли какой-либо из этих языков простой способ сделать то, что я ищу?
Поскольку я не могу найти что-то конкретное для своих нужд, я надеюсь, что массовый интеллект StackOverflow поможет!