Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
prog:lazarus:debug:heaptrc [05/04/2020 14:33] thierry [Afficher que si il y a des erreurs] |
prog:lazarus:debug:heaptrc [05/04/2020 14:41] (Version actuelle) thierry [HeapTrc] |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== HeapTrc et gestion de la mémoire ====== | ====== HeapTrc et gestion de la mémoire ====== | ||
| HeapTrc permet de détecter des éventuelles "fuites" de mémoire lors du débuggage. | HeapTrc permet de détecter des éventuelles "fuites" de mémoire lors du débuggage. | ||
| - | ====== HeapTrc ====== | + | ===== HeapTrc ===== |
| ==== Activation===== | ==== Activation===== | ||
| Ligne 48: | Ligne 48: | ||
| end. | end. | ||
| </code> | </code> | ||
| + | ===== THeapStatus ===== | ||
| + | THeapStatus sert a récuperer les infos sur la mémoire utilisée par le programme | ||
| + | ==== Déclaration ==== | ||
| + | dans l'unité (???) heaph.inc | ||
| + | <code delphi> | ||
| + | THeapStatus = record | ||
| + | TotalAddrSpace: Cardinal; | ||
| + | TotalUncommitted: Cardinal; | ||
| + | TotalCommitted: Cardinal; | ||
| + | TotalAllocated: Cardinal; | ||
| + | TotalFree: Cardinal; | ||
| + | FreeSmall: Cardinal; | ||
| + | FreeBig: Cardinal; | ||
| + | Unused: Cardinal; | ||
| + | Overhead: Cardinal; | ||
| + | HeapErrorCode: Cardinal; | ||
| + | end; | ||
| + | </code> | ||
| + | ==== Utilisation ==== | ||
| + | |||
| + | <code delphi> | ||
| + | Var | ||
| + | FHeap: THeapStatus; | ||
| + | | ||
| + | procedure TForm1.WriteHeapStatus; | ||
| + | begin | ||
| + | FHeap := GetHeapStatus; // A appeler à chaque fois que l'on veut lire les données | ||
| + | writeln(format('TotalAllocated:%d (%d)', [FHeap.TotalAllocated, FHeap.TotalAllocated - FLastAllocated])); | ||
| + | writeln(format('TotalFree:%d (%d)', [FHeap.TotalFree, FHeap.TotalFree - FLastFree])); | ||
| + | FLastFree := FHeap.TotalFree; | ||
| + | FLastAllocated := FHeap.TotalAllocated; | ||
| + | end; | ||
| + | |||
| + | </code> | ||
| + | |||
| + | |||
| ===== Voir aussi ===== | ===== Voir aussi ===== | ||
| + | |||
| * [[https://wiki.freepascal.org/heaptrc]] | * [[https://wiki.freepascal.org/heaptrc]] | ||
| * [[https://wiki.freepascal.org/leakview]] | * [[https://wiki.freepascal.org/leakview]] | ||