/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Hvordan aktiverer man Garbage Collectoren
Fra : hnn


Dato : 13-03-02 22:55

Er der nogen der ved hvordan man aktiverer Garbage Collectoren
Er der et Java Statement så man kan forcere den i gang.

Hilsen

hnn




 
 
Soren 'Disky' Reinke (13-03-2002)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 13-03-02 23:09


"hnn" <hnn@hotmail.com> wrote in message
news:3c8fcab6$0$66967$edfadb0f@dspool01.news.tele.dk...
> Er der nogen der ved hvordan man aktiverer Garbage Collectoren
> Er der et Java Statement så man kan forcere den i gang.
>

Ifølge API'en kan man ikke tvinge den til det, man kan spørge den pænt om
den gider når den har tid:

Calling the gc method suggests that the Java Virtual Machine expend effort
toward recycling unused objects in order to make the memory they currently
occupy available for quick reuse.When control returns from the method call,
the Java Virtual Machine has made a best effort to reclaim space from all
discarded objects.

Der er ingen grund til selv at kalde den, som manden bag Hotspot gc'en sagde
til javaone, så er den MEGET bedre til at bedømme hvornår det skal gøres end
vi udviklere er.

--
With many Thanks
Soren ' Disky ' Reinke ICQ #1413069 remove 'ihsyd' when email replying
Please visit my Freshwater Aquaria Webpage
http://www.disky-design.dk/fish



Simon Mikkelsen (14-03-2002)
Kommentar
Fra : Simon Mikkelsen


Dato : 14-03-02 19:17

D. Wed, 13 Mar 2002 22:55:01 +0100 syntes "hnn" <hnn@hotmail.com> at
dk.edb.programmering.java skulle vide at
<3c8fcab6$0$66967$edfadb0f@dspool01.news.tele.dk>.

>Er der nogen der ved hvordan man aktiverer Garbage Collectoren
>Er der et Java Statement så man kan forcere den i gang.

Det kaldes automatisk når referencen til et objekt fjernes, og der ikke
foretages beregninger (det kører i en idle-tråd).
Du kan dog også kaldes funktionen gc(), der vist nok nedarves fra Object.

--
Mvh. Simon Mikkelsen, ingeniørstuderende

www.zipstat.dk Gratis, reklamefri tæller/statistik til enhver hjemmeside
-Se bla. hvor dine besøgende kommer fra, og brug den usynlige tællerkode.

Henry Vest (14-03-2002)
Kommentar
Fra : Henry Vest


Dato : 14-03-02 19:42

Simon Mikkelsen wrote:

> Du kan dog også kaldes funktionen gc(), der vist nok nedarves fra Object.

Vist gør den ej - og jeg synes heller ikke rigtigt det ville give mening.
Det er en statisk metode i klassen System. Som Søren Reinke skriver
ovenfor, så kan man ikke tvinge garbage collection, kun opfordre venligt.

/Henry


Peter Lind (14-03-2002)
Kommentar
Fra : Peter Lind


Dato : 14-03-02 19:35


"hnn" <hnn@hotmail.com> wrote
> Er der nogen der ved hvordan man aktiverer Garbage Collectoren
> Er der et Java Statement så man kan forcere den i gang.

Runtime.getRuntime().gc();

Men som nævnt af andre skribenter, så fremtvinger det ikke en
garbage-collection, det beder kun om en...

mvh
Peter Lind



Flemming Jensen (14-03-2002)
Kommentar
Fra : Flemming Jensen


Dato : 14-03-02 20:00

On Wed, 13 Mar 2002 22:55:01 +0100, "hnn" <hnn@hotmail.com> wrote:

>Er der nogen der ved hvordan man aktiverer Garbage Collectoren
>Er der et Java Statement så man kan forcere den i gang.

Bortset fra at man ikke kan gøre det, hvorfor vil du gerne så
gerne kunne få GC til "at køre".


/Flemming Jensen


hnn (16-03-2002)
Kommentar
Fra : hnn


Dato : 16-03-02 12:49

Hej
Det var sådan et spørgsmål. Jeg kommer fra mainframe verdenen hvor ting
sker når man neder om det getmain/freemain, og er ikke vant til at tingenne
sker bag ryggen på en. jeg kan se både fordele og ulemper ved at GC bliver
styret af java selv.
En stor fordel, er at man ikke behøver at tænke over sine "pointere" /
adresser og
hvornår det skla frigives.'
En ulempe er måske at GC går igang, når man er midt i en transaktions
udveksling med serveren , og man derfor får nogel delays i responsetiden.
Det er måske det problem jeg er inde i nu, jeg kan ikke forstå hvorfor der
en gang immlem er en stor svartid på de samme request, selv om der ikke sker
noget på linjen.
Hilsen
hnn
Flemming Jensen <nospam@nospam.com> wrote in message
news:3c90f2da.18189204@news.cybercity.dk...
> On Wed, 13 Mar 2002 22:55:01 +0100, "hnn" <hnn@hotmail.com> wrote:
>
> >Er der nogen der ved hvordan man aktiverer Garbage Collectoren
> >Er der et Java Statement så man kan forcere den i gang.
>
> Bortset fra at man ikke kan gøre det, hvorfor vil du gerne så
> gerne kunne få GC til "at køre".
>
>
> /Flemming Jensen
>



Flemming Jensen (16-03-2002)
Kommentar
Fra : Flemming Jensen


Dato : 16-03-02 21:27

On Sat, 16 Mar 2002 12:48:47 +0100, "hnn" <hnn@hotmail.com> wrote:

>En ulempe er måske at GC går igang, når man er midt i en transaktions
>udveksling med serveren , og man derfor får nogel delays i responsetiden.
>Det er måske det problem jeg er inde i nu, jeg kan ikke forstå hvorfor der
>en gang immlem er en stor svartid på de samme request, selv om der ikke sker
>noget på linjen.

Det er ikke det der er skyld i det. Alle historier om at GC
leder efter objekter der ikke længere er referencer til osv. er
kun ammestuesnak - hvad den i virkeligheden gør er mere kompliceret,
og man undgår derfor helst at forklare det i detaljer - det er nemlig
en længere forklaring. GC går igang med at køre når object nursery
løber fuld og den holder kun rede i de objekter der er en reference
til - ikke omvendt, men som sagt det er en længere forklaring.

GC vil ikke kunne have indvirkning på dine responstider mht. netværk,
i den sammenhæng er netværket utrolig meget langsommere i sig selv.
Mao. en lille variation i netværkhastighed betyder 100 gange mere end
om GC kører eller ej.

En ting man ikke fortæller folk mht. til GC, er at man skal undgå at
bruge finalize - det er endnu ikke lykkedes at lave en GC der kan
håndtere finalize bare nogenlunde effektivt (det har noget med
context at gøre). Hvis man bruger finalize i flæng, vil det give
GC rigtig meget mere arbejde, og det er pt. det eneste nævneværdige
effektivitetsproblem med GC'ere.

Jeg ved ikke hvilken JVM du bruger - ovenstående er i relation til
Hot Spot (Sun's JVM). Det er muligt at der findes mere ineffektive
GC'ere rundt omkring - Hot Spot's måltal er for det meste betydelig
bedre end konkurenternes.


/Flemming Jensen


Soren 'Disky' Reinke (17-03-2002)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 17-03-02 00:48


"hnn" <hnn@hotmail.com> wrote in message
news:3c933121$0$92520$edfadb0f@dspool01.news.tele.dk...
> Hej
> Det var sådan et spørgsmål. Jeg kommer fra mainframe verdenen hvor ting
> sker når man neder om det getmain/freemain, og er ikke vant til at
tingenne
> sker bag ryggen på en. jeg kan se både fordele og ulemper ved at GC bliver
> styret af java selv.
> En stor fordel, er at man ikke behøver at tænke over sine "pointere" /
> adresser og
> hvornår det skla frigives.'
> En ulempe er måske at GC går igang, når man er midt i en transaktions
> udveksling med serveren , og man derfor får nogel delays i responsetiden.
> Det er måske det problem jeg er inde i nu, jeg kan ikke forstå hvorfor der
> en gang immlem er en stor svartid på de samme request, selv om der ikke
sker
> noget på linjen.

Næsten enig, hvis dit Java miljø er sat korrekt op med hensyn til ram osv,
så kører GC'en aldrig en komplet oprydning, men laver hele tiden nogle små.
Så opdager du det slet ikke, og mærker derfor heller ikke noget delay.

--
With many Thanks
Soren ' Disky ' Reinke ICQ #1413069 remove 'ihsyd' when email replying
Please visit my Freshwater Aquaria Webpage
http://www.disky-design.dk/fish



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste