3
왜 ActionController :: Metal은 메모리를 누출합니까?
다음과 같은 클래스가 있습니다.
class Myclass < ActionController::Metal
def myaction
huge_object.do_something
# etc.
end
private
def huge_object
@obj ||= begin
# allocate and initialize a ~10MB object
end
end
end
찾을 때 놀랐던 것은 제작시에도 myaction이 호출 될 때마다 객체가 할당된다는 것입니다. 또한 GC는 수집하지 않으므로 참조가 있습니다. 다른 클래스의 객체를 래핑하고 해당 클래스의 Singleton을 포함하여 해결 방법을 만들었습니다. 아직도, 나는 이해하고 싶다, 여기서 무슨 일이 일어나고 있는지.