// in a garbage collected VM, destroy someObject:
someObject.a = null;
someObject.b = null;
someObject = null;
Słyszałem, że w dobrej maszynie wirtualnej, takiej jak Java czy C#, nie powinieneś tego robić. Ustawienie someObject
do spowolnienia zbierania śmieci, ponieważ GC trwa dłużej, aby dowiedzieć się, że wcześniej wspomniane obiekty nie są już przywoływane, natomiast jeśli pozostawisz je w stanie nienaruszonym, GC natychmiast sprawdzi je, gdy sprzątanie someObject
.Ustawia odniesienia do wartości null w obiekcie, który ma być GC?
Zakładając, że to, co usłyszałem, jest prawdą (popraw mnie, jeśli nie), czy to samo dotyczy AVM2, ActionScript 3 VM (w szczególności w najnowszych wersjach Flash Playera)?
Powodem, dla którego pytam, jest to, że mam kolegę, który to robi, ponieważ nauczył się u poprzedniego pracodawcy, że jest szybszy, i że Flash ma wiele takich dziwactw (co łatwo mi uwierzyć).
Zastanawiam się, czy te informacje są nadal aktualne (w przypadku innych optymalizacji Flash, jak również). Z mojego doświadczenia wynika, że takie sztuczki optymalizacyjne szybko stają się przestarzałe na platformie życia.
Nie powinieneś nawet zastanawiać się, czy to dobry pomysł, czy nie. – delnan