🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.vbasic
Article #92551

Re: .NET problemy z pamięcią

#92551
From: Tomasz Kopacz
Date: Wed, 02 Nov 2005 23:11
36 lines
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-mail
References: <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