Difference between revisions of "Profiling/ru"
(New page: {{profiling}} [http://ru.wikipedia.org/wiki/Профилирование Профилирование в Википедии]: == Профилирование памяти == === Heaptrc...) |
|||
Line 7: | Line 7: | ||
=== Heaptrc, LineInfo === | === Heaptrc, LineInfo === | ||
− | Чтобы обнаружить утечки памяти, просто соберите программу с ключом "-gh". При компиляции в секцию Uses каждого модуля, будет добавлен | + | Чтобы обнаружить утечки памяти, просто соберите программу с ключом "-gh". При компиляции, в секцию Uses каждого модуля, будет добавлен модуль ''heaptrc''. Модуль встраивается менеджер памяти и отслеживает её использование. |
При использовании ''heaptrc'' с ключом -gl (добавление отладочной информации о строках), можно получить информацию о том какой код вызывал утечку. | При использовании ''heaptrc'' с ключом -gl (добавление отладочной информации о строках), можно получить информацию о том какой код вызывал утечку. |
Revision as of 22:04, 15 November 2009
│
English (en) │
français (fr) │
русский (ru) │
Профилирование памяти
Heaptrc, LineInfo
Чтобы обнаружить утечки памяти, просто соберите программу с ключом "-gh". При компиляции, в секцию Uses каждого модуля, будет добавлен модуль heaptrc. Модуль встраивается менеджер памяти и отслеживает её использование.
При использовании heaptrc с ключом -gl (добавление отладочной информации о строках), можно получить информацию о том какой код вызывал утечку.
Подключая модуль Heaptrc через ключ компиляции, его поведение можно контролировать с помощью системной переменной HEAPTRC, которая может содержать следующие значения:
- keepreleased: освобождаемая память остаётся под наблюдением и проверяется, если в неё производится повторная запись.
- disabled: отключить трассировку. позволяет отключить проверку памяти, в уже скомпилированной (с -gh) программе.
- nohalt: heaptrc останавливает программу, при первой найденной ошибке. Если это значение присутствует, то программа продолжит своё исполнение, несмотря на ошибку.
- haltonnotreleased: heaptrc печатает информацию о всех "утечках". Добавив этот параметр, можно ограничить печать только информацией о первой найденной утечке.
- log=<имя_файла>: установить файл, куда нужно печатать информацию об утечках. Если файл не указан, то использовании с Windows графическими приложениями могут возникать ошибки.
Модуль heaptrc можно использовать явно. Однако, он должен быть также первым модулем, подключаемым программой (файлом проекта в Lazarus-е). Если heaptrc используется явно, то вы уже не сможете скомпилировать программу с -gh, однако, использование -gl необходимо для получения информации о месте утечки.
Внимание: heaptrc конфликтует с модулем cmem, если вы хотите отлаживать внешние библиотеки, используйте Valgrind.