Autor Téma: OT: program na sledovani spoteby pameti  (Přečteno 3330 krát)

Offline Hdm

  • Nováček
  • *
  • Příspěvků: 34
  • Karma: 3
    • Verze Delphi: Tokyo
OT: program na sledovani spoteby pameti
« kdy: 22-06-2012, 13:39:06 »
Ahoj,
mate nekdo vyzkouseny nejaky programek, co by sledoval u vybrane aplikace spotrebu pameti vcetne vychytavek jako je graf spotreby RAM v čase, minimum, maximum... + nejake logovani?

Idealne pokud by nepotreboval instalaci. Jeden zakaznik si stezuje ze mu nas program neustale pozira pamet s kazdym spustenim vykonneho kodu, ale kdyz to testuju tak to jede na porad stejne urovni.

Pripadne pokud si nekdo dal praci a uz ma hotovou unitu s necim podobnym byl bych vdecen kdyby se podelil.
Hdm

Offline Vrtule

  • Mladík
  • **
  • Příspěvků: 54
  • Karma: 10
    • Verze Delphi: XE2
    • Jádro systému Windows
Re:OT: program na sledovani spoteby pameti
« Odpověď #1 kdy: 22-06-2012, 14:13:11 »
Zdravím,

co se týče hlídání memory leaků, tak se to tu nedávno řešilo (viz http://forum.delphi.cz/index.php/topic,12893.0.html). Možná by vám informace v tom tématu mohly být užitečné.

Osobně jsem si vždy vystačil se Správcem úloh a zkoumáním vlastního kódu. Navíc, od Windows Vista tento program umí prostředky sledovat mnohem podrobněji: mrkněte v záložce Výkon na Sledování prostředků.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2309
  • Karma: 102
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:OT: program na sledovani spoteby pameti
« Odpověď #2 kdy: 22-06-2012, 14:22:11 »
Součástí FastMM je i UsageTracker - http://fastmm.svn.sourceforge.net/viewvc/fastmm/Demos/Usage%20Tracker/ nebo
přímo v C:\Users\Public\Documents\RAD Studio\9.0\Samples\Delphi\RTL\Usage Tracker

Vřele doporučuji.
Embarcadero MVP - Czech republic

Offline < z >

  • Administrátoři
  • Guru
  • *****
  • Příspěvků: 1126
  • Karma: 42
    • Verze Delphi: 7, 2010
Re:OT: program na sledovani spoteby pameti
« Odpověď #3 kdy: 22-06-2012, 16:52:18 »
2 Hdm:
nemas na mysli neco ve stylu Process Explorer (SysInternals) ?

Offline Fala

  • Plnoletý
  • ***
  • Příspěvků: 168
  • Karma: 2
    • Verze Delphi: XE2
    • Software pro poskytování technické podpory
Re:OT: program na sledovani spoteby pameti
« Odpověď #4 kdy: 22-06-2012, 19:47:59 »
2 Hdm:
nemas na mysli neco ve stylu Process Explorer (SysInternals) ?
Doporučuji, super utilita

Offline Hdm

  • Nováček
  • *
  • Příspěvků: 34
  • Karma: 3
    • Verze Delphi: Tokyo
Re:OT: program na sledovani spoteby pameti
« Odpověď #5 kdy: 27-06-2012, 10:46:52 »
2 Hdm:
nemas na mysli neco ve stylu Process Explorer (SysInternals) ?

diky to je perfektni. Sleduje to i TCP/IP komunikaci/porty, moc pekne.

a super je, ze se to nemusi instalovat, to bude zakaznik spokojen ;-)
Hdm

Offline Fala

  • Plnoletý
  • ***
  • Příspěvků: 168
  • Karma: 2
    • Verze Delphi: XE2
    • Software pro poskytování technické podpory
Re:OT: program na sledovani spoteby pameti
« Odpověď #6 kdy: 27-06-2012, 10:57:44 »
teďka jsem si procházel nějaké příklady pro XE2 a narazil jsem na Unitu MemoryManagerUsageTracker.
Ještě jsem to blíže nezkoumal, ale vypadá to zajímavě

Offline Fala

  • Plnoletý
  • ***
  • Příspěvků: 168
  • Karma: 2
    • Verze Delphi: XE2
    • Software pro poskytování technické podpory
Re:OT: program na sledovani spoteby pameti
« Odpověď #7 kdy: 27-06-2012, 11:13:05 »
teďka jsem si procházel nějaké příklady pro XE2 a narazil jsem na Unitu MemoryManagerUsageTracker.
Ještě jsem to blíže nezkoumal, ale vypadá to zajímavě
omlouvám se, není to knihovna XE2 ale nějakého příkladu.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2309
  • Karma: 102
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:OT: program na sledovani spoteby pameti
« Odpověď #8 kdy: 27-06-2012, 11:48:16 »
na Unitu MemoryManagerUsageTracker.

Je to demo k FastMM, psal jsem o tom na delphi.cz. http://delphi.cz/post/FastMM4-a-vyuziti-pameti.aspx

Citace
Process Explorer

Je v Delphi viceméně na houby, jelikož jednou alokovaná paměť je držena FastMM i po uvolnění objektů (pokud to jde) a následně přednostně přidělováno zpět programu bez nutnosti žádosti OS (což je z hlediska rychlosti velké plus).
Tj. Process Explorer ti bude většinou ukazovat podle všeho větší hodnotu než je skutečná aktuální spotřeba paměti.
Embarcadero MVP - Czech republic

Offline Fala

  • Plnoletý
  • ***
  • Příspěvků: 168
  • Karma: 2
    • Verze Delphi: XE2
    • Software pro poskytování technické podpory
Re:OT: program na sledovani spoteby pameti
« Odpověď #9 kdy: 27-06-2012, 12:11:54 »
Je v Delphi viceméně na houby, jelikož jednou alokovaná paměť je držena FastMM i po uvolnění objektů (pokud to jde) a následně přednostně přidělováno zpět programu bez nutnosti žádosti OS (což je z hlediska rychlosti velké plus).
a nejde tam zavolat nějaká funkce, která by to zdrcla na minimum. asi se to občas děje, bo moje služba po několika hodinách má alokováno mnohem méně, než tam bylo.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2309
  • Karma: 102
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:OT: program na sledovani spoteby pameti
« Odpověď #10 kdy: 27-06-2012, 15:25:05 »
>zdrcla na minimum

Důvod? Pokud bude docházet paměť nebo nebude dlouho používané tak se uvolní. Pokud je to služba tak ta má nějaké konkrétní nároky, takže si myslím, že použití paměti bude víceméně konstantní.

Takže důvod?
Embarcadero MVP - Czech republic

Offline Fala

  • Plnoletý
  • ***
  • Příspěvků: 168
  • Karma: 2
    • Verze Delphi: XE2
    • Software pro poskytování technické podpory
Re:OT: program na sledovani spoteby pameti
« Odpověď #11 kdy: 27-06-2012, 15:38:30 »
Důvod: jenom jsem chtěl mít přehled, jestli se paměť dobře uvolňuje.
Tím, že se jedná o službu, tak se to špatně debuguje. Prej to nějak jde, ale už jsem to neřešil. Zdrcnutí na povel by mi stačilo  :)

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2309
  • Karma: 102
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:OT: program na sledovani spoteby pameti
« Odpověď #12 kdy: 27-06-2012, 15:56:52 »
>Zdrcnutí na povel by mi stačilo
Ale to je přece nesmysl. Zadne zdrcnuti neuvolnene pameti neexistuje. Akorat se odlozi do swapu a nektere programy to pak interpretuji ze se pamet uvolnila (pokud se divas na spatny ukazatel!)

Ja jsem to resil takto:
Nastav si ReportMemoryLeaksOnShutdown := True a nechej sluzbu parkrat obslouzit pozadavek a pak dej Exit (tj. treba if Pozadavku = 100 then Application.Terminate);

Pokud mas novejsi Delphi nebo pouzivas FastMM tak ti to vypise zda neco neuvolnujes.
Embarcadero MVP - Czech republic