Как представить использование памяти программы C

Я должен выяснить, который часть программы Linux, которую я запускаю, берет сколько (или процент, или абсолютная) память. Я должен создать профиль нескольких таких программ, так, чтобы я мог идентифицировать некоторых более крупных потребителей памяти в моем коде и видеть, могу ли я оптимизировать их для использования меньше. Мне нужен он на платформе MIPS, и к сожалению, Valgrind не работает над MIPS.

Любая справка/указатели значительно ценилась бы.

6
задан Harty 15 December 2009 в 09:30
поделиться

4 ответа

Вы можете заключить все свои вызовы в free и malloc своими собственными функциями, в которых вы также указываете, например, в каком файле и в какой строке число сделано каждое распределение. Из этой информации легко увидеть, какая память и где используется.

6
ответ дан 8 December 2019 в 12:20
поделиться

Beside Valgrind, there exists a lot of other memory debugger/profiler. All the following seems to support MIPS (but I've not tried them on that architecture) :

jemalloc, CCMALLOC, mpatrol, NJAMD, Dmalloc, and even Google's own google-perftools.

8
ответ дан 8 December 2019 в 12:20
поделиться
4
ответ дан 8 December 2019 в 12:20
поделиться

На потребление памяти не должна сильно влиять архитектура базового процессора, поэтому вы можете выполнить профилирование памяти в x86 Linux. Да, возможно, это затронет абсолютный объем памяти, но, поскольку вы ищете больше относительных, чем абсолютных чисел, это должно сработать.

Тем не менее, это решение вряд ли будет подходящим вариантом, если сборка Linux x86 больше, чем перекомпилируйте прочь.

1
ответ дан 8 December 2019 в 12:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: