Выявление причины неисправности главной страницы - PullRequest
4 голосов
/ 24 ноября 2010

Меня попросили взглянуть на внутреннее приложение, написанное на C ++ и работающее на Linux, с некоторыми трудностями. Периодически он будет иметь большое количество основных сбоев страниц (~ 200 КБ), которые приводят к увеличению времени работы настенных часов на x10 +, тогда на некоторых запусках его не будет.

Я пытался изолировать различные части кода, но изо всех сил пытаюсь повторить ошибки сбоев страницы при тестировании.

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

1 Ответ

3 голосов
/ 24 ноября 2010

Вы можете рассмотреть Valgrid , описанный на главной странице как:

Valgrind - это инструментальная среда для создания инструментов динамического анализа. Существуют инструменты Valgrind, которые могут автоматически обнаруживать многие ошибки управления памятью и потоков, а также подробно описывать ваши программы. Вы также можете использовать Valgrind для создания новых инструментов.

В частности, Valgrind содержит инструмент под названием Massif , для которого в руководстве приведен следующий (перефразированный) обзор:

Массив - это профилировщик кучи. Он измеряет, сколько кучи памяти использует ваша программа. [..]

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

  • Это может ускорить вашу программу - меньшая программа будет лучше взаимодействовать с кешами вашей машины и избегать подкачки.

  • Если ваша программа использует много памяти, это уменьшит вероятность того, что она исчерпает пространство подкачки вашей машины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...