Paziņojums par atmiņas noplūdi Delphi, izejot no programmas

Digitālais cilvēka un datora centrālais procesors

monsitj / Getty Images





Visām Delphi versijām kopš 2006. gada Delphi ir atjaunināts atmiņas pārvaldnieks, kas ir ātrāks un ar iespējām bagātāks.

Viena no jaukākajām “jaunā” atmiņas pārvaldnieka funkcijām ļauj lietojumprogrammām reģistrēt (un atcelt reģistrāciju) gaidāmās atmiņas noplūdes un pēc izvēles ziņot par negaidītām atmiņas noplūdēm programmas izslēgšanas laikā.



Veidojot WIN32 lietojumprogrammas ar Delphi, noteikti ir jāpārliecinās, ka jūs dinamiski atbrīvojat visus izveidotos objektus (atmiņu).

Atmiņas (vai resursa) noplūde notiek, kad programma zaudē spēju atbrīvot atmiņu, ko tā patērē.



Ziņojiet par atmiņas noplūdēm izslēgšanas laikā

Atmiņas noplūdes noteikšana un ziņošana pēc noklusējuma ir iestatīta uz nepatiesu. Lai to iespējotu, globālajam mainīgajam ReportMemoryLeaksOnShutdown ir jāiestata uz TRUE.

Ja lietojumprogramma ir aizvērta, ja rodas neparedzētas atmiņas noplūdes, lietojumprogramma parādīs dialoglodziņu “Negaidīta atmiņas noplūde”.

Labākā vieta ReportMemoryLeaksOnShutdown būtu programmas pirmkods (dpr) failu.

|_+_|

Piezīme. Iepriekš tiek izmantots globālais mainīgais DebugHook, lai nodrošinātu, ka tiek parādītas atmiņas noplūdes, kad lietojumprogramma tiek palaista atkļūdošanas režīmā — ja ir piemērots F9 no Delphi IDE.



Testa brauciens: Atmiņas noplūdes noteikšana

Ja ReportMemoryLeaksOnShutdown ir iestatīts uz TRUE, pievienojiet šādu kodu galvenās veidlapas notikumu apdarinātājam OnCreate.

|_+_|

Palaidiet lietojumprogrammu atkļūdošanas režīmā, izejiet no programmas — jums vajadzētu redzēt atmiņas noplūdes dialoglodziņu.



Piezīme. Ja meklējat rīku, lai novērstu Delphi lietojumprogrammas kļūdas, piemēram, atmiņas bojājumus, atmiņas noplūdes, atmiņas piešķiršanas kļūdas, mainīgo inicializēšanas kļūdas, mainīgo definīciju konfliktus, rādītāja kļūdas ...traks, izņemotun EurekaLog

Delphi Tips Navigator