zarzadzanie pamiecia

0

Witam,
Mam take pytanie, sytuacja jest taka, mam midlet, ktory tworzy obiekt np. X
posiadajacy zbior pewnych metod. Zalozmy, ze uzytkownik podczas uzywania
midletu wykonuje kilka razy jedna z tych metod. Metoda ta ma wykorzystac
komponent alert. Moje pytanie jest nastepujace, czy lepiej stworzyc instancje
alerta, pzrekazac go jako parametr do konstruktora klasy X czy lepiej za
kazdym razem w wywolywanej metodzie tworzyc nowy alert. Wiem, ze alert poleci
na sterte bo to typ referencyjny, jak zrobie go raz bedzie tam caly czas,
natomiast majac go w metodzie ktora tworzy za kazdym razem wiem ze bardziej
obciazam pamiec, jednak jak wyglada sprawa zwalniania ? Czy z chwila
zakonczenia metody oprocz usuniecia zmiennych ze stosu jest wywolywany gc w
celu zwolnienia pamieci po obiekcie nie majacym juz zadnego odwolania w
programie ?
Chcalbym prosic o rade co jest bardziej wydajne z punktu widzenia np.
klasycznego programowania oraz programowania midletow,

0

To kiedy zadziala gc zalezy od konkretnej maszyny wirtualnej - rozwiazania sa rozne. Nie mozesz wiec zalozyc, ze obiekt bedzie usuniety z pamieci zaraz po zniknieciu ostatniej referencji do niego. Ja bym byl sklonny temu, zeby go stworzyc raz. Z drugiej strony nie mozna twierdzic, ze jak bedzie za kazdym razem obiektem lokalnym to zapcha pamiec, bo gc w koncu zadziala. Ale w tym drugim rozwiazaniu dodajesz mu pracy.

pozdrawiam
johny

0

wydaje mi sie ze taki kod powinien ci dac pewnosc oczyszczenia pamieci ale pewien nie jestem.

jakisObiekt = null;
System.gc();
0

Tez zalezy od maszynki. W tej z sun'a o ile pamietam jest tak, ze ten kod 'sugeruje' tylko uruchomienie gc, wiec tez nie ma pewnosci.

Java JDK Documentation napisał(a)

Runs the garbage collector.

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.

pozdrawiam
johny

0

witam,
dzieki za sugestje, mysle ze jednak zdecyduje siena 1 rozwiazanie z tego wzgledu ze ta klasa to ma byc Alert wiec nie tylko klasa X ale tez inne skorzystaja z referencji do niej wiec bedzie jednak optymalniej, tak mysle ;d

pozdr.
Pawel Pietrasz

1 użytkowników online, w tym zalogowanych: 0, gości: 1