Obvestilo o uhajanju pomnilnika v Delphiju ob izhodu iz programa
monsitj / Getty Images
Vse različice Delphija od Delphija 2006 naprej imajo posodobljen upravljalnik pomnilnika, ki je hitrejši in bogatejši s funkcijami.
Ena izmed najlepših funkcij 'novega' upravitelja pomnilnika omogoča aplikacijam, da registrirajo (in odjavijo) pričakovano uhajanje pomnilnika in po želji poročajo o nepričakovanem uhajanju pomnilnika ob zaustavitvi programa.
Ko ustvarjate aplikacije WIN32 z Delphijem, morate obvezno sprostiti vse objekte (pomnilnik), ki jih ustvarite dinamično.
Do puščanja pomnilnika (ali vira) pride, ko program izgubi zmožnost sprostitve pomnilnika, ki ga porabi.
Prijavite puščanje pomnilnika ob zaustavitvi
Zaznavanje uhajanja pomnilnika in poročanje sta privzeto nastavljena na false. Če ga želite omogočiti, morate globalno spremenljivko ReportMemoryLeaksOnShutdown nastaviti na TRUE.
Ko je aplikacija zaprta, bo v primeru nepričakovanega uhajanja pomnilnika prikazala pogovorno okno 'Nepričakovano uhajanje pomnilnika'.
Najboljše mesto za ReportMemoryLeaksOnShutdown bi bilo v izvorna koda programa (dpr) mapa.
|_+_|Opomba: zgoraj je uporabljena globalna spremenljivka DebugHook, da se zagotovi prikaz uhajanja pomnilnika, ko se aplikacija izvaja v načinu za odpravljanje napak – ko namestite F9 iz Delphi IDE.
Testna vožnja: odkrivanje puščanja pomnilnika
Ko je ReportMemoryLeaksOnShutdown nastavljen na TRUE, dodajte naslednjo kodo v rutino za obravnavo dogodkov OnCreate glavnega obrazca.
|_+_|Zaženite aplikacijo v načinu za odpravljanje napak, zaprite aplikacijo - morali bi videti pogovorno okno za uhajanje pomnilnika.
Opomba: Če iščete orodje za odkrivanje napak vaše aplikacije Delphi, kot so poškodbe pomnilnika, uhajanje pomnilnika, napake pri dodeljevanju pomnilnika, napake pri inicializaciji spremenljivk, konflikti definicij spremenljivk, napake kazalcev ... si oglejtemadExceptin EurekaLog
Delphi Tips Navigator
- Poizvedbe SQL za datum in čas: Oblikovanje vrednosti datuma in časa za Access SQL v Delphiju
- Prisilite način urejanja TListView z uporabo bližnjice na tipkovnici