|
Den røde graf viser tydeligt at hukommelsesforbruget er nærmest konstant, hvorimod forbruget for den blå graf fremstår oscillerende. Årsagen til dette skyldes, at hver gang vi kalder en metode med 1), den direkte string indsætning, oprettes et nyt string objekt på Java heapen som bliver født ind i metode kaldet. Eftersom metoden bliver kaldt meget ofte (hvert 10 ms) fyldes heapen hurtigt op, hvilket garbage collectoren reagerer på og fjerner de string objekter der ikke længere bruges. Ved brugen af 2), en reference til en feltvariabel med en string, oprettes der ikke et nyt objekt for hvert metodekald --- string'en bliver blot hentet ind via dens reference i hukommelsen. Det er derfor bedst at opbevare statiske strings i en feltvariabel, og dermed undgå en overaktiv garbage collector, som potentielt set kan dræne batteriet meget hurtigt.
|
|
Den røde graf viser tydeligt at hukommelsesforbruget er nærmest konstant, hvorimod forbruget for den blå graf fremstår oscillerende. Årsagen til dette skyldes, at hver gang vi kalder en metode med 1), den direkte string indsætning, oprettes et nyt string objekt på Java heapen som bliver født ind i metode kaldet. Eftersom metoden bliver kaldt meget ofte (hvert 10 ms) fyldes heapen hurtigt op, hvilket garbage collectoren reagerer på og fjerner de string objekter der ikke længere bruges. Ved brugen af 2), en reference til en feltvariabel med en string, oprettes der ikke et nyt objekt for hvert metodekald --- string'en bliver blot hentet ind via dens reference i hukommelsen. Det er derfor bedst at opbevare statiske strings i en feltvariabel, og dermed undgå en overaktiv garbage collector, som potentielt set kan dræne batteriet meget hurtigt.
|