|
| Manuel oprydning? Fra : Carsten H. Pedersen |
Dato : 20-03-02 21:25 |
|
Jeg har nu i flere eksempler fundet følgende ved brug af klassen Vector:
public void foo() {
Vector vec = new Vector();
...
vec.clear();
vec.trimToSize();
}
Mit spørgsmål er så om dette overhovedet øger performance i ens applikation?
Jeg ville tro at garbage collector ville sørge for at rydde op. Jeg kan dog
godt på den anden side se, at dette måske er en mere øjeblikkelig løsning
til at frigøre ressourcer.
Der er utvivlsomt nogen der ved mere om det her end jeg, siden jeg intet
ved, og forhåbentlig gider du også svare. :)
/Carsten
| |
Dennis Thrysøe (21-03-2002)
| Kommentar Fra : Dennis Thrysøe |
Dato : 21-03-02 08:11 |
|
Carsten H. Pedersen wrote:
> Jeg har nu i flere eksempler fundet følgende ved brug af klassen Vector:
>
> public void foo() {
> Vector vec = new Vector();
> ...
> vec.clear();
> vec.trimToSize();
> }
>
> Mit spørgsmål er så om dette overhovedet øger performance i ens applikation?
> Jeg ville tro at garbage collector ville sørge for at rydde op. Jeg kan dog
> godt på den anden side se, at dette måske er en mere øjeblikkelig løsning
> til at frigøre ressourcer.
>
> Der er utvivlsomt nogen der ved mere om det her end jeg, siden jeg intet
> ved, og forhåbentlig gider du også svare. :)
Vector øger selv sin størrelse, hver gang der bliver brug for det. Jeg
tror nok, at den fordobler størrelsen af det interne array hver gang.
Hvis man så mener, at man er færdig med at komme noget deri, kan man i
princippet spare noget af arrayet (4 bytes pr. element) ved at afkorte
det til den forbrugte størrelse.
I eksemplet ovenfor tømmes Vectoren først, så her kan hele arrayet
spares væk.
-dennis
| |
|
|