Article View: nl.comp.programmeren
Article #479Re: C# garbage collector
From: Ramon Smits
Date: Sat, 20 Sep 2003 11:53
Date: Sat, 20 Sep 2003 11:53
61 lines
4215 bytes
4215 bytes
Marco van de Voort wrote: >>Dat zeg ik ook niet :). It's all about design. Waarom een object continu >>creeeren en destroyen als je weet dat je die actie per uur 1 miljoen >>maal moet doen. Dan is het nuttig dergelijke objecten te cachen. Maar >>dat is eigenlijk altijd al geweest. > > Als ze in een freelist zitten voor een bepaalde grootte, zijn ze al > gecollect. Dus gecachete allocaties tellen niet mee in je applicatie > geheugen gebruik. (tenzij je VM/heapmanager ze niet freed als de memory > low watermark gehaald wordt ) Wat is een freelist? Een lijst van alle recources waar geen references vanuit de applicatie meer staan? Inderdaad... de tresshold bepaald wanneer de garbage collector gaan handelen. Maar dan moet inderdaad wel die tresshold behaald worden tijdens het draaien van de betreffende applicatie. Een cache word nooit vrijgegeven. Dat is nou het mooie van een cache. Uiteraard telt die WEL mee met je applicatie geheugen gebruik. Aangezien de objecte in de betreffende cache snel oud worden gaat de .NET GC ze overslaan omdat deze in een oudere generatie komen. De .NET GC is zo slim om dan niet bij elke GC cycle die objecten te checken omdat ze waarschijnlijk nog steeds niet gecollect kunnen worden. >>Je tekstverwerken is niet continu met een >>spellingscontrole ;bezig en je ontwikkelomgeving niet continu aan het >>compileren en je tekenprogramma niet continu een batch aan >>beeldbewerkingen. > > > Maar de vertraging die uitswappen kost tijdens gewoon werken (en b.v. eens > in de 10/20 minuten switches) is IMHO ook al fout, dat werkt al niet lekker > meer als ie dan 10 seconden gaat trashen, om even iets in de documentatie > te cut and pasten. Inderdaad.. dat is ook vrij irritant. Garbage collecten wil je ook op die momenten doen zodra de betreffende applicatie idle is. Dat doet de VM in Java en .NET maar een C++ applicatie heeft dergelijke functionaliteit vaak niet omdat het een hels karwij is. De gebruiker merkt vaak deze opschoon acties dan ook vaak helemaal niet in Java en .NET. Het enige wat de gebruiker merkt is het jit compileren van de code. Maar zolang systeem geheugen nog riant beschikbaar is is garbage collecten nog helemaal niet nodig. Dat is wat ik duidelijk probeer te maken. De .NET VM zal dat dan ook niet snel doen. > De applicaties die genoemd werden zijn allemaal interactief. Voor slapende > services kan ik het me nog voorstellen. Wat kun je je voorstellen? Dat die idle zijn? Interactieve applicatie zijn ook net zo vaak idle. M.v.g., Ramon -- Ramon Smits aka. Exyll http://www.exyll.net/ (ipv6 enabled)
Technical Details
Message-ID:
<3f6c3fca$0$59340$e4fe514c@dreader8.news.xs4all.nl>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-01!sn-xit-09!supernews.com!diablo.theplanet.net!zen.net.uk!131.211.28.48.MISMATCH!humbolt.nl.linux.org!news.nl.linux.org!nntpfeed-01.ops.asmr-01.energis-idc.net!newsfeed.multikabel.nl!newsfeed.wxs.nl!transit.news.xs4all.nl!newsfeed.xs4all.nl!xs4all!rhinewceros.xs4all.nl!not-for-mailReferences:
<bkecq3$11sg$1@nl-news.euro.net> <1063971705.136647@seven.kulnet.kuleuven.ac.be> <3f6b8a0a$0$197$e4fe514c@dreader3.news.xs4all.nl> <bkh1nn$g66$1@news2.tilbu1.nb.home.nl> <3f6c1dd6$0$135$e4fe514c@dreader4.news.xs4all.nl> <slrnbmo8qj.dt1.marcov@toad.stack.nl>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: 107324,99e0602d9fb9d25e X-Google-Attributes: gid107324,public X-Google-Thread: fcea4,99e0602d9fb9d25e X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-09-20 04:53:53 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-01!sn-xit-09!supernews.com!diablo.theplanet.net!zen.net.uk!131.211.28.48.MISMATCH!humbolt.nl.linux.org!news.nl.linux.org!nntpfeed-01.ops.asmr-01.energis-idc.net!newsfeed.multikabel.nl!newsfeed.wxs.nl!transit.news.xs4all.nl!newsfeed.xs4all.nl!xs4all!rhinewceros.xs4all.nl!not-for-mail Date: Sat, 20 Sep 2003 13:53:46 +0200 From: Ramon Smits <exyll@hotmail.com> Organization: Subliminal User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5b) Gecko/20030901 Thunderbird/0.2 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: nl.comp.programmeren,be.comp.programming Subject: Re: C# garbage collector References: <bkecq3$11sg$1@nl-news.euro.net> <1063971705.136647@seven.kulnet.kuleuven.ac.be> <3f6b8a0a$0$197$e4fe514c@dreader3.news.xs4all.nl> <bkh1nn$g66$1@news2.tilbu1.nb.home.nl> <3f6c1dd6$0$135$e4fe514c@dreader4.news.xs4all.nl> <slrnbmo8qj.dt1.marcov@toad.stack.nl> In-Reply-To: <slrnbmo8qj.dt1.marcov@toad.stack.nl> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Lines: 62 Message-ID: <3f6c3fca$0$59340$e4fe514c@dreader8.news.xs4all.nl> NNTP-Posting-Host: 194.109.160.204 X-Trace: 1064058826 dreader8.news.xs4all.nl 59340 194.109.160.204:5955