Article View: pl.comp.lang.vbasic
Article #92551Re: .NET problemy z pamięcią
From: Tomasz Kopacz
Date: Wed, 02 Nov 2005 23:11
Date: Wed, 02 Nov 2005 23:11
36 lines
2564 bytes
2564 bytes
On Wed, 02 Nov 2005 18:26:25 +0100, Artur S. wrote: > Witam > Program napisany w VB.NET, WinForms. Uruchomienie jednej z funkcji > powoduje zwiększenie zajętości pamięci przez program. Uruchomienie tej > funkcji 40 razy powoduje zajętość w okolicach 1GB (podglądam to > Menedżarem zadań w XP), a tego zaakceptować nie mogę. Uruchomienie > GC.Collect() nic nie daje. > Funkcja ta tworzy obiekt (obiekt1), który tworzy obiekty, które tworzą > obiekty i tak kilka poziomów. Refencje na obiekty trzymane są w > HahTable, albo w zmiennych . > Dopisałem funkcję, która robi: > hTab = nothing 'hTab to hahstable > i wywołuję ją zanim zrobię obiekt1 = nothing. > Po takiej operacji program potrzebuje mniej pamięci, a wykonanie > GC.Collect() zwalnia część pamięci. Ale nadal nie wszystko. > Jak mogę rozwikłać tą sytuację? Czy przypisanie hTab = nothing mam być > rozwiązaniem? Przecież mamy GC, który miał to wszystko załatwiać. > Czy ktoś korzystał z: http://www.scitech.se/memprofiler/ ? > A znacie może jakieś darmowe narzędzia, które mi pomogą? > > Pozdrawiam > Artur S. Wiszą ci gdzieś referencje do obiektów - i nic na to nie poradzisz. hTab=nothing pomaga - ale pamiętaj że GC jest niedeterministyczny Wiesz - GC nie zabezpieczy cię przed przeciekiem pamięci w sensie np. listy do której tylko dodajesz elementy a nigdy nie usuwasz.... Stąd mem profiler się przydaje. Ja się bawiłem CLR Profiler (do ściągnięcia z MSDN), Borland OptimizeIt (ajjjj - no działa - to można powiedzieć ;) ) Fajny jest QATime - ale kosztowny lekko No i masz profilera w VS2005... -- Pozdrawiam, Tomasz Kopacz
Technical Details
Message-ID:
<caqbkd3ad60t$.dlg@fdsvzxcc.rtb.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!nemesis.news.tpi.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<dkassr$466$1@atlantis.news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!nemesis.news.tpi.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: Tomasz Kopacz <tkopacz@nospam.idg.com.pl> Newsgroups: pl.comp.lang.vbasic Subject: Re: .NET problemy z pamięcią Date: Thu, 3 Nov 2005 00:11:03 +0100 Organization: tp.internet - http://www.tpi.pl/ Lines: 36 Message-ID: <caqbkd3ad60t$.dlg@fdsvzxcc.rtb.com> References: <dkassr$466$1@atlantis.news.tpi.pl> NNTP-Posting-Host: qr170.internetdsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1130973105 23018 80.55.43.170 (2 Nov 2005 23:11:45 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Wed, 2 Nov 2005 23:11:45 +0000 (UTC) User-Agent: 40tude_Dialog/2.0.15.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit