2013-01-01 13 views
5

Buduję aplikację i zastanawiam się, czy ustawienie nieużywanego obiektu na jest powszechną praktyką w kodowaniu na poziomie produkcji.Czy często ustawia się obiekty na zero?

Rozumiem, że to jest tylko wskazówką dla śmieciarza i nie zawsze będzie dysponować obiektu.

+1

Domyślam się, że powinno to pomóc, ale w większości przypadków nie powinno być również potrzebne. – Linuxios

+0

Jednorazowo ustawiam zmienną na zero, gdy mam zmienną śmieciową, która musi zaczynać się od znanego ustawienia, a nawet wtedy bardzo rzadko jej potrzebuję. –

Odpowiedz

0

Nie należy robić nic, aby dawać garbage collectorowi jakiekolwiek wskazówki. Wystarczy użyć algorytmu, który jest wystarczająco wydajny, a zajmie się resztą.

9

Według tego thread

Jeśli odbywa się za pomocą obiektu człon ustawiania go nil sprowokuje obiekt odwołanie do śmieci zebrane. Jeśli jest to zmienna lokalna, wyjście metody zrobi to samo.

Mimo to chciałbym zakwestionować swój projekt, jeśli wymagają człon być jawnie ustawiona na nil.

+0

Tak ... dziękuję za odpowiedź – user1000232

1

Nie, nie jest to powszechna praktyka. Występują tylko rzadkie przypadki, w których jawnie ustawiono obiekt na zero.

Na przykład przy implementacji niektórych struktur danych warto ustawić obiekty na zero. Powiedzmy, że implementujesz pamięć podręczną i podajesz metodę usuwania klucza. Załóżmy dalej, że pamięć podręczna używa wewnętrznie tablicy, która zawiera odniesienia do usuniętego obiektu. Następnie zaleca się usunięcie wszystkich odwołań do usuniętego obiektu, ustawiając je na zero.

Jednak w praktyce sytuacje te nie występują zbyt często.

Powiązane problemy