Pharo 3.0을 사용하고 있습니다.스몰 토크 - 메모리에있는 모든 것을 제거하는 방법?
메모리에서 모든 개체를 제거 할 수있는 방법이 있습니까? 닫고 이미지를 다시 열어 보려고했지만 모든 것이 여전히 메모리에 남아있는 것처럼 보입니다. General Ledger --> Spending Manager
과 싱글로 모두 설정 :
예를 들어, 내가 가진
GeneralLedger>>new
instance isNil ifTrue: [instance := super new].
^instance
SpendingManager>>new
instance isNil ifTrue: [instance := super new].
^instance
및 Spending Manager
을 인스턴스화 할 때 길을 따라 어딘가에 엉망 - 즉, 나는 General Ledger
의 인스턴스 아닌 인스턴스를 반환 Spending Manager
내 생각 엔?
지금은 내 이미지를로드에 CTRL + P를 수행하려고 할 때 spnder:=SpendingManager new.
내가 얻을 :
spnder = SpendingManager 새. GeneralLedger는
난 지금 Object
에서 상속 그래서 SpendingManager
에서 상속을 제거했지만, 이것은 여전히 발생합니다.
좋은 답변입니다. 보통 싱글 톤 변수를 없애는 clearInstance라는 메서드를 추가합니다. –
@DavidBuck 좋은 의견입니다. 나는 객체를 수정하는 유일한 방법은 메시지를 보내거나 (#clearInstance에서 생성하는) 메시지를 보내거나 기존 도구로 메시지를 보내도록하는 것입니다 (instVarAt : put : 또는 다른 종류의 경위의 경우 흑 마법). –