Счетчик памяти - проект обнаружения столкновений - PullRequest
3 голосов
/ 09 мая 2011

Я решил спросить экспертов - посмотрите, можете ли вы мне помочь: o) Мой сын написал код C ++ для обнаружения столкновений с использованием алгоритмов Brute Force и Octree.

Он использовал Debug и т. Д.собирать статистику по использованию памяти, он использовал Windows и диспетчер задач - которые дали ему все конечные результаты, в которых он нуждался до сих пор.Результаты пока не соответствуют ожидаемым (что Octree будет использовать больше памяти в целом).

Его наставник предположил, что он проверяет память после того, как каждый «инициализирован», а затем строит точки в точках теста.

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

Любая помощь с благодарностью получена, как я знаю ничто , так что не может помочь ему вообще, кромедля того, чтобы напечатать это здесь - поскольку это «социальная» среда, он не может с этим справиться.

Спасибо Розалин

Ответы [ 2 ]

2 голосов
/ 09 мая 2011

Для утечек памяти :

Если вы работаете в Windows, Visual C ++ от Microsoft (версия Express free ) имеет хороший инструмент для отладки и прост в настройке. Инструкции можно найти здесь ; в противном случае, если вы работаете в Linux, Valgrind является одним из стандартов. Я часто использовал инструмент Visual C ++, и это хорошая проверка, что у вас нет утечек памяти. Кроме того, вы можете использовать его, чтобы позволить вашим программам разбивать номера распределения, которые вы получаете из журнала утечек памяти, чтобы он быстро указывал вам, когда и где выделяется память для утечек. Опять же, это легко реализовать (всего несколько заголовочных файлов, а затем один вызов функции, в который вы хотите сбросить утечки).

Я нашел, что лучший способ реализовать инструмент VC ++ - это сделать вызов, чтобы сбросить утечки памяти в окно вывода непосредственно перед тем, как main вернет значение. Таким образом, вы можете обнаружить утечки абсолютно всего в вашей программе. Это работает очень хорошо, и я использовал его для некоторых передовых программ.

Для частоты кадров и использования процессора :

Я обычно использую свои собственные инструменты для бенчмаркинга, так как их нетрудно кодировать, когда вы изучаете функции для вызова; Обычно для этого требуются вызовы OS API, но я думаю, что Boost это доступно и является кроссплатформенным. Могут быть и другие инструменты, которые также могут отслеживать процесс в ОС, чтобы получать данные для сравнительного анализа, но я не уверен, будут ли они бесплатными или нет.

1 голос
/ 09 мая 2011

Похоже, вы работаете в системе Windows. Это не решение для программирования, и вы, возможно, уже пробовали его (так что не стесняйтесь его игнорировать), но если нет, вам стоит взглянуть на монитор производительности (это один из инструментов, поставляемых с окнами). Это позволит вам отслеживать всевозможные полезные статистические данные об отдельных процессах и системе в целом (размер процессора / фиксации и т. Д.). Результаты отображаются для вас в виде графика во время работы программы, и вы можете сохранить результаты для дальнейшего просмотра.

В Windows 7 вы попадаете сюда:

Control Panel\All Control Panel Items\Performance Information and Tools\Advanced Tools

Затем откройте системный монитор.

В старых версиях Windows это был один из вариантов инструментов администрирования.

...