Difference between revisions of "Profiling/ru"

From Free Pascal wiki
Jump to navigationJump to search
(New page: {{profiling}} [http://ru.wikipedia.org/wiki/Профилирование Профилирование в Википедии]: == Профилирование памяти == === Heaptrc...)
 
Line 7: Line 7:
 
=== Heaptrc, LineInfo ===
 
=== Heaptrc, LineInfo ===
  
Чтобы обнаружить утечки памяти, просто соберите программу с ключом "-gh". При компиляции в секцию Uses каждого модуля, будет добавлен на модуль ''heaptrc''. Модуль встраивается менеджер памяти компилятора и отслеживает использование памяти.  
+
Чтобы обнаружить утечки памяти, просто соберите программу с ключом "-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.